2010-12-15 19 views
1

これは初めてのチームシップのセットアップです。結果を表示するいくつかの問題が発生しています。 NAntスクリプトを実行するビルドステップが必要です。スクリプトは、PartCoverを通じてユニットテストを実行し、結果を表示する必要があります。 TeamCity/NAnt/Gallio/PartCoverをセットアップしてテスト結果を表示する方法は?

  • カバレッジレポート
  • /フェイルのテストに合格

    • テストしかし、私は実際にスクリプトや設定を設定する方法がわからない、あるいはどこがすべき:結果がでなければなりませんこれらの結果を見てください(私が推測している成果物のセクション?)。以下のスクリプトを使用すると、すべてが正常に実行されますが、レポートを表示することはできません。ネットカバレッジ部分については

      <project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
      
      <loadtasks assembly="C:\Program Files\Gallio\bin\Gallio.NAntTasks.dll" /> 
      
      <target name="test"> 
          <gallio result-property="exitCode" failonerror="false" > 
          <runner-extension value="TeamCityExtension,Gallio.TeamCityIntegration" /> 
          <files> 
           <include name="%system.teamcity.build.checkoutDir%\Trunk\MyLibrary.Testing\bin\Release\MyLibrary.Testing.dll"/> 
          </files> 
          </gallio> 
          <fail if="${exitCode != '0'}" >One or more tests failed. Please check the log for more details</fail>  
      </target> 
      
      </project> 
      

      、(私がすべき?)私はPartCover(2.2または2.3)を選択しているが、私はPartCover引数に何も持っていないあなたの助けを

      ありがとう!

    答えて

    0

    NAntで問題が発生し、MSBuildを使用することに決めました。 MSBuildは使いやすく、非常に説明的なエラーメッセージを出しました。 (NCoverのライセンスも同様に使用されていました)。興味のある人のためのスクリプトです。私はネット上のさまざまな場所からそのコードを見つけました。

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    
        <PropertyGroup> 
        <CoverageDir>.\Tests\Output\Coverage</CoverageDir> 
        <CoverageFilesDir>.\Tests\Output\Coverage\files</CoverageFilesDir> 
        <BinDir>Testing\bin\x86\Release</BinDir> 
        <NCoverDir>C:\Program Files (x86)\NCover</NCoverDir> 
        <GallioDir>C:\Program Files (x86)\Gallio\bin</GallioDir> 
        </PropertyGroup> 
    
        <UsingTask TaskName="NCover" AssemblyFile="$(NCoverDir)\Build Task Plugins\NCover.MSBuildTasks.dll" /> 
        <UsingTask TaskName="NCoverExplorer" AssemblyFile="$(NCoverDir)\Build Task Plugins\NCoverExplorer.MSBuildTasks.dll"/> 
    
        <!-- Specify the tests assemblies --> 
        <ItemGroup> 
        <TestAssemblies Include="$(BinDir)\library.Testing.dll" /> 
        <CoverageAssemblies Include="$(BinDir)\library.dll" /> 
        </ItemGroup> 
    
        <Target Name="Coverage"> 
         <Message Text="Creating $(CoverageFilesDir)" /> 
         <MakeDir Directories="$(CoverageFilesDir)"/> 
    
         <Message Text="##-------------------- Running Coverage Reports --------------------##" /> 
         <Message Text="Coverage Assemblies @(TestAssemblies)" /> 
    
         <!--Run NCover to gather coverage information--> 
         <NCover 
         ToolPath="$(NCoverDir)" 
         TestRunnerExe="$(GallioDir)\Gallio.Echo.exe" 
         TestRunnerArgs="%(TestAssemblies.FullPath)" 
         IncludeAssemblies="@(CoverageAssemblies)" 
         LogFile="$(CoverageFilesDir)\%(TestAssemblies.Filename)-ncover.log" 
         RegisterProfiler="false" 
         CoverageFile="$(CoverageFilesDir)\%(TestAssemblies.Filename)-coverage.xml"/>  
    
         <CreateItem Include="$(CoverageFilesDir)\*-coverage.xml"> 
         <Output TaskParameter="Include" ItemName="CoverageReports"/> 
         </CreateItem> 
    
         <!--Generate coverage report--> 
         <NCoverExplorer 
         ToolPath="$(NCoverDir)" 
         ProjectName="Library Coverage" 
         ReportType="4" 
         Sort="CoveragePercentageAscending" 
         Filter="None" 
         OutputDir="$(CoverageDir)" 
         XmlReportName="CoverageReport.xml" 
         HtmlReportName="CoverageReport.html" 
         ShowExcluded="True" 
         SatisfactoryCoverage="15" 
         FailMinimum="False" 
         CoverageFiles="@(CoverageReports)"/> 
    
         <!-- In case one of the tests fails, make sure to stop TypeMock and unregister NCover. --> 
         <OnError ExecuteTargets="test-finally"/> 
        </Target> 
    
        <!-- Stopping unregistering NCover is a separate target because it has to happen --> 
        <!-- regardless of success or failure of the unit tests. Like the "finally" in a "try/finally" block. --> 
        <Target Name="test-finally"> 
        <Exec Command="regsvr32 /u /s &quot;$(NCoverDir)\CoverLib.dll&quot;" ContinueOnError="true"/> 
        </Target> 
    
    </Project> 
    
    0

    私の経験では、Gallioを直接実行しないでください。代わりに、PartCoverを実行し、コマンドラインパラメータGallioをターゲットとして指定する必要があります。 Nant + PartCoverに関するアドバイスはこちらから: Integrating PartCover.NET with NAnt

    関連する問題