문제

이 작품을 얻을 기회가 있나요?NAnt의 nunit2 작업으로 테스트를 실행하고 싶습니다.또한 다시 테스트를 실행하지 않고 Ncover를 실행하고 싶습니다.

도움이 되었습니까?

해결책

나는 그것을 알아.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.

다른 팁

Ncover가 NUnit을 실행하지 않는 이유는 무엇입니까?똑같은 테스트 결과를 얻을 수 있습니다.또한, 테스트 외에 Ncover를 실행할 때 정확히 무엇을 측정하려고 하시나요?오래되었거나 참조되지 않은 코드를 찾는 다른 방법이 있습니다.

나도 똑같은 일을해야합니다.우리가 바랄 수 있는 최선의 방법은 TeamCity와 함께 제공되는 NUnit jar 파일을 열고 NUnit2와 NCover를 통합하는 사용자 지정 작업을 작성하는 것입니다.그렇지 않았으면 좋겠지만 NUnit2 작업은 눈에 보이는 출력을 생성하지 않으므로 TeamCity는 분명히 테스트 결과를 위해 StdOut을 읽지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top