Y a-t-il une chance d'obtenir ce travail? Je veux que mes tests soient exécutés par la tâche nunit2 dans NAnt. De plus, je veux lancer NCover sans recommencer les tests. Pourquoi ne pas avoir NCover exécuter NUnit?ncover avec tâche nunit2 dans NAnt
Répondre
Je l'ai compris. Vous modifiez le chemin du lanceur NUnit à celui de TeamCity. Voici un exemple:
<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/"
/>
Comme vous pouvez le voir, j'ai quelques-unes de mes propres variables là-dedans, mais vous devriez être en mesure de comprendre ce qui se passe. La propriété qui vous intéresse est teamcity.dotnet.nunitlauncher. Vous pouvez en lire plus à ce sujet ici au http://www.jetbrains.net/confluence/display/TCD4/TeamCity+NUnit+Test+Launcher.
Vous obtenez exactement les mêmes résultats de test. Aussi, qu'essayez-vous de mesurer exactement lorsque vous exécutez NCover en dehors des tests? Il existe d'autres moyens de trouver du code périmé ou non référencé.
Je dois faire la même chose. Je pense que le mieux que nous pouvons espérer est de casser le fichier JAR NUnit fourni avec TeamCity et d'écrire une tâche personnalisée qui intègre NUnit2 et NCover. J'aimerais que ce ne soit pas le cas, mais la tâche NUnit2 ne produit aucune sortie visible, donc TeamCity ne lit évidemment pas StdOut pour les résultats du test.