2008-09-04 9 views

答えて

3

私はそれを理解しました。 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

NCoverでNUnitを実行してみませんか?まったく同じテスト結果が得られます。また、テストの外でNCoverを実行するとき、正確に何を測定しようとしていますか?古いコードや参照されていないコードを見つける方法は他にもあります。

0

私は同じことをしなければなりません。 TeamCityに付属のNUnit jarファイルを開き、NUnit2とNCoverを統合するカスタムタスクを作成することが、私たちが望むことができる最高のものだと思います。これはそうではありませんでしたが、NUnit2タスクは可視出力を生成しないので、TeamCityは明らかにテスト結果のStdOutを読み込んでいません。

関連する問題