Java TFS可以';无法从Ant/JUnit构建中找到单元测试结果

Java TFS可以';无法从Ant/JUnit构建中找到单元测试结果,java,ant,tfs,junit,continuous-integration,Java,Ant,Tfs,Junit,Continuous Integration,我有一个java项目刚刚导入到TFS中,我一直在尝试让TFS输出单元测试的结果 在TFSBuild.proj文件的末尾,我有以下内容: <ItemGroup> <!-- Ant Call Configuration. The build file called should be included in the workspace of the build definition. --> <AntBuildFile Include="

我有一个java项目刚刚导入到TFS中,我一直在尝试让TFS输出单元测试的结果

在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>

建造、测试
BinariesRoot=$(BinariesRoot);BuildDefinitionName=$(BuildDefinitionName);BuildDefinitionUri=$(BuildDefinitionUri);BuildDirectory=$(BuildDirectory);BuildNumber=$(BuildNumber);滴位=$(滴位);LogLocation=$(LogLocation);SourceGetVersion=$(SourceGetVersion);TestResultsRoot=$(TestResultsRoot);团队项目=$(团队项目);WorkspaceName=$(WorkspaceName);WorkspaceOwner=$(WorkspaceOwner)
这将启动构建并告诉TFS在哪里可以找到junit测试结果。
问题是,TFS没有找到单元测试结果,即使我可以通过运行测试的日志看到这些结果。

我几乎放弃了这一点,并更改了我的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.output}
但是在检查了下一个构建的输出之后,我意识到JUnit输出被保存为TESTS-TestSuites.xml,而不是TEST-*.xml。我相应地更改了TFSBuild.proj文件,现在生成结果显示在TFS中

不知何故,junitreport任务仍然会获取输出