ncover с задачей nunit2 в NAnt - PullRequest
       41

ncover с задачей nunit2 в NAnt

3 голосов
/ 04 сентября 2008

Есть ли шанс получить эту работу? Я хочу, чтобы мои тесты запускались задачей nunit2 в NAnt. Кроме того, я хочу запустить NCover без запуска тестов снова.

Ответы [ 3 ]

3 голосов
/ 10 октября 2008

Я понял это. Вы изменяете путь запуска NUnit на собственный путь TeamCity. Вот пример:

    <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/"
    />

Как вы видите, у меня есть некоторые из моих собственных переменных, но вы должны быть в состоянии выяснить, что происходит. Имущество, которое вас интересует, - teamcity.dotnet.nunitlauncher. Вы можете прочитать больше об этом здесь на http://www.jetbrains.net/confluence/display/TCD4/TeamCity+NUnit+Test+Launcher.

2 голосов
/ 04 сентября 2008

Почему бы NCover не запустить NUnit? Вы получаете точно такие же результаты теста. Кроме того, что именно вы пытаетесь измерить при запуске NCover вне тестов? Есть и другие способы поиска устаревшего или не имеющего ссылки кода.

0 голосов
/ 10 октября 2008

Я должен сделать то же самое. Я думаю, что лучшее, на что мы можем надеяться, это взломать jar-файл NUnit, который поставляется с TeamCity, и написать пользовательскую задачу, которая объединяет NUnit2 и NCover. Хотелось бы, чтобы это было не так, но задача NUnit2 не дает видимых результатов, поэтому TeamCity явно не читает StdOut для результатов теста.

...