2008-09-05 7 views
6

Intenté recientemente usar NAnt (beta 0.86.2962.0) para ejecutar algunas pruebas unitarias compiladas con la última versión estable de NUnit (v2.4.8) sin ningún éxito.¿Cómo se ejecutan las pruebas de NUnit v2.4.8 con NAnt 0.86 beta?

El error que consigo es la siguiente:

Asamblea

[nunit2] "C: \ Dev \ MySample \ \ pruebas bin \ My.Sample.Tests.dll" no contiene pruebas.

Por supuesto, el conjunto contiene pruebas que puedo ejecutar desde cualquier corredor, como NUnit one, TestDriven o Resharper. Me gustaría utilizar < nunit2> task, y no directamente el < exec> one, pero me pregunto si aún es posible, incluso si se utilizan archivos app.config para vincular versiones de ensamblaje.

Respuesta

10

No puedo recordar por qué, pero renuncié al uso de la tarea < nunit2> y he estado usando la < exec> task y nunit-console.exe felizmente. Si ayuda, este es mi objetivo de prueba que ejecuta NUnit y FxCop. Tenga en cuenta que se saltea si los ejecutables no están en la ruta de Windows.

<target name="test" description="Run unit tests" depends="build"> 
    <property name="windows-path" value="${string::to-lower(environment::get-variable('PATH'))}"/> 
    <property name="nunit-in-path" 
     value="${string::contains(windows-path, 'nunit')}"/> 
    <echo message="Tests skipped because no NUnit folder was found in the Windows path." 
     unless="${nunit-in-path}"/> 
    <exec program="nunit-console.exe" if="${nunit-in-path}"> 
     <arg file="../MyProject/MyProjectTest.nunit"/> 
    </exec> 
    <property name="fxcop-in-path" 
     value="${string::contains(windows-path, 'fxcop')}"/> 
    <echo message="FxCop skipped because no FxCop folder was found in the Windows path." 
     unless="${fxcop-in-path}"/> 
    <fxcop projectFile="../MyProject/MyProject.fxcop" directOutputToConsole="true" 
     failOnAnalysisError="true" if="${fxcop-in-path}"/> 
</target> 
+1

Secundo esto ... he usado para tratar de hacer la magia app.config para tratar de obtener la tarea nunit2 a trabajar, pero abandonaron hace un tiempo y ahora utilizan la tarea Exec como se describió anteriormente. –

+2

Don, Andy: Creo que una buena razón para utilizar tarea en lugar de es que si su conjunto de pruebas tiene pruebas marcadas con [ExpectedException] y la excepción es lanzada, la tarea NAnt informa como un error en lugar de éxito y la compilación falla Estoy teniendo este problema ahora mismo. Voy a resolverlo usando , pero por supuesto apreciaré otro consejo de solución. – azheglov

+0

Hola chicos, estoy tratando de usar mi unidad dll de prueba en archivo arg. Pero no dice qué pruebas fallaron. La etiqueta arg no tiene errores detallados o falla en el error, entonces, ¿cómo averiguaría si sus pruebas fallaron o pasaron? – alice7

Cuestiones relacionadas