2010-12-15 3 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 인수에 아무것도하지 않는 (해야 I?) 당신의 도움을 위해

      감사합니다!

    답변

    0

    . 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에 대한 몇 가지 조언을 찾을 수 있습니다 나는은 NAnt 문제에 달려 단지의 MSBuild를 사용하기로 결정 Integrating PartCover.NET with NAnt