2011-12-22 75 views
2

我有一個剛剛被導入到TFS的java項目,我一直試圖讓TFS輸出單元測試的結果。TFS找不到來自Ant/JUnit構建單元測試結果

在TFSBuild.proj文件的最後,我有以下幾點:

<ItemGroup> 
    <!-- Ant Call Configuration. 
     The build file called should be included in the workspace of the build definition. 
    --> 

    <AntBuildFile Include="$/PROJECT_NAME/Main/tfsbuild.xml"> 
    <Targets>build,test</Targets> 
    <Properties>BinariesRoot=$(BinariesRoot);BuildDefinitionName=$(BuildDefinitionName);BuildDefinitionUri=$(BuildDefinitionUri);BuildDirectory=$(BuildDirectory);BuildNumber=$(BuildNumber);DropLocation=$(DropLocation);LogLocation=$(LogLocation);SourceGetVersion=$(SourceGetVersion);TestResultsRoot=$(TestResultsRoot);TeamProject=$(TeamProject);WorkspaceName=$(WorkspaceName);WorkspaceOwner=$(WorkspaceOwner)</Properties> 
    <Lib></Lib> 
    </AntBuildFile> 

    <!-- JUnit XML Results files should be created using the XML formatter 
     and be located in the following path 
    --> 
    <JUnitLogFiles Include="$(BinariesRoot)\**\TEST-*.xml" /> 
</ItemGroup> 

這揭開序幕構建並告訴TFS在哪裏可以找到JUnit測試結果。 問題是,儘管我可以看到測試運行的日誌,但TFS並未找到單元測試結果。

回答

2

我幾乎放棄了這一點,並更改了我的ant文件以生成junit報告並將其與構建工件一起存儲。我改變了我的Ant任務是:

<target name="test" depends="compile-tests"> 
    <echo>Running unit tests, output should be in ${junit.output}</echo> 
    <junit printsummary="yes"> 
     <classpath> 
      <pathelement path="${compile.classpath}" /> 
      <pathelement path="${lib.dir}/junit-4.0.jar" /> 
      <pathelement path="${build}" /> 
      <pathelement path="${dist-classes}" /> 
     </classpath> 

     <formatter type="xml" /> 

     <batchtest fork="yes" todir="${junit.output}"> 
      <fileset dir="${src.test}"> 
       <include name="**/*Test.java" /> 
      </fileset> 
     </batchtest> 
    </junit> 

    <mkdir dir="${DropLocation}/${BuildNumber}/test_results" /> 
    <junitreport todir="${junit.output}"> 
     <fileset dir="${junit.output}"> 
      <include name="TEST-*.xml" /> 
     </fileset> 
     <report todir="${DropLocation}/${BuildNumber}/test_results" /> 
    </junitreport> 
</target> 

但檢查從未來建設的輸出後,我意識到,JUnit的輸出被保存爲測試 - TestSuites.xml, TEST - * XML。我相應地更改了我的TFSBuild.proj文件,現在生成的結果顯示在TFS中。

不知怎的,junitreport任務仍然收到輸出。