Pregunta

Tengo código en la capa superior de mi aplicación web Net que me gustaría prueba a la unidad, pero cuando mi servidor de compilación compila el proyecto mediante el aspnet_compiler.exe, hace que un archivo .dll que no es en absoluto utilizable por otro proyecto, es decir, un proyecto de prueba NUnit.

(Este es el caso de las aplicaciones web ASP .NET y de las aplicaciones ASP .Net MVC).

¿Estoy haciendo algo mal aquí? Aquí está mi script de NAnt que llama al compilador ...

<exec program="${asp.compiler.home}/aspnet_compiler.exe" failonerror="true">
   <arg value="-nologo"/>
   <arg value="-c"/>
   <arg value="-f"/>
   <arg value="-errorstack"/>
   <arg value="-v"/>
   <arg value="${project.name}"/>
   <arg value="-p"/>
   <arg value="${project::get-base-directory()}"/>
   <arg value="${web.deploy.dir}\${project.name}"/>
  </exec>
¿Fue útil?

Solución

No es necesario utilizar aspnet_compiler.exe. Eso es sólo una aplicación de utilidad para precompilar sus páginas aspx para evitar el retraso de inicio cuando un usuario pulsa una página por primera vez.

A mi entender, cualquier código no aspx / ascx en su aplicación web ASP.NET MVC será compilada en un archivo DLL normalmente cuando la solución está construida. Esta DLL es entonces utilizable por el proyecto de prueba NUnit. Asumo que es esos bits que desea probar.

Así que, la construcción del proyecto utilizando MSBuild a partir de NAnt y olvidarse de aspnet_compiler.exe.

Otros consejos

  

Tengo código en la capa superior de mi aplicación web Net que me gustaría prueba de la unidad [...]

Alto ahí; ese es el problema. Poner ese código en un ayudante, y probarlo fuera de ASP.NET.

No se puede ejecutar algo como aquí, en lugar de en Nant como un evento posterior a la generación?

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v / -p "$(SolutionDir)\PathToMyWebProject"

(donde FilePathToMyWebProject es la ruta de acceso al archivo de proyecto en relación con el archivo de solución)

Utilizamos MSBuild con un fichero de construcción para compilar la aplicación web y las pruebas realizadas, si se puede omitir el material de NAnt, aquí es una sección relevante del archivo de generación (llamada como parámetro para MSBuild.exe):

<!-- Build projects by calling the Project files generated by VS -->
  <Target Name="Build">
    <MSBuild Projects="$(ProjectFile)" />
    <MSBuild Projects="$(TestProjectFile)" />
  </Target>

  <!-- Run Unit tests -->
  <Target Name="Test" DependsOnTargets="Build">
    <CreateItem Include="ClearViewTest\Bin\Debug\ClearViewTest.exe">
      <Output TaskParameter="Include" ItemName="ClearViewTest" />
    </CreateItem>
    <NUnit Assemblies="@(ClearViewTest)" ToolPath="C:\Program Files\NUnit 2.4\bin" ContinueOnError="false" OutputXmlFile="SoultionTestResults.xml" />
  </Target>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top