Pregunta

¿Existe alguna posibilidad de conseguir este trabajo?Quiero que mis pruebas se ejecuten mediante la tarea nunit2 en NAnt.Además, quiero ejecutar NCover sin volver a ejecutar pruebas.

¿Fue útil?

Solución

Me lo imaginé.Cambias la ruta del iniciador de NUnit a la del propio TeamCity.Aquí hay un ejemplo:

    <mkdir dir="${build}/coverage" failonerror="false"/>

    <!-- run the unit tests and generate code coverage -->
    <property name="tools.dir.tmp" value="${tools.dir}"/>
    <if test="${not path::is-path-rooted(tools.dir)}">
        <property name="tools.dir.tmp" value="../../${tools.dir}"/>
    </if>

    <property name="nunitpath" value="${lib.dir}/${lib.nunit.basedir}/bin/nunit-console.exe"/>
    <property name="nunitargs" value=""/>
    <if test="${property::exists('teamcity.dotnet.nunitlauncher')}">
        <property name="nunitpath" value="${teamcity.dotnet.nunitlauncher}"/>
        <property name="nunitargs" value="v2.0 x86 NUnit-2.4.8"/>
    </if>

    <ncover program="${tools.dir.tmp}/${tools.ncover.basedir}/ncover.console.exe"
       commandLineExe="${nunitpath}"
       commandLineArgs="${nunitargs} ${proj.name.unix}.dll"
       workingDirectory="${build}"
       assemblyList="${proj.srcproj.name.unix}"
       logFile="${build}/coverage/coverage.log"
       excludeAttributes="System.CodeDom.Compiler.GeneratedCodeAttribute"
       typeExclusionPatterns=".*?\{.*?\}.*?"
       methodExclusionPatterns="get_.*?; set_.*?"
       coverageFile="${build}/coverage/coverage.xml"
       coverageHtmlDirectory="${build}/coverage/html/"
    />

Como puedes ver, tengo algunas de mis propias variables allí, pero deberías poder descubrir qué está pasando.La propiedad que le preocupa es teamcity.dotnet.nunitlauncher.Puedes leer más sobre esto aquí en http://www.jetbrains.net/confluence/display/TCD4/TeamCity+NUnit+Test+Launcher.

Otros consejos

¿Por qué no hacer que NCover ejecute NUnit?Obtendrá exactamente los mismos resultados de la prueba.Además, ¿qué intenta medir exactamente cuando ejecuta NCover fuera de las pruebas?Hay otras formas de encontrar código obsoleto o sin referencia.

Estoy teniendo que hacer lo mismo.Creo que lo mejor que podemos esperar es abrir el archivo jar NUnit que viene con TeamCity y escribir una tarea personalizada que integre NUnit2 y NCover.Desearía que esto no fuera así, pero la tarea NUnit2 no produce ningún resultado visible, por lo que TeamCity obviamente no lee StdOut para los resultados de la prueba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top