TFS не может найти результаты модульного теста из сборки Ant / JUnit - PullRequest
2 голосов
/ 22 декабря 2011

У меня есть проект 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>

Это запускает сборку и сообщает TFS, где найти результаты теста junit.Проблема в том, что TFS не находит результаты модульных тестов, хотя в журналах видно, что тесты были запущены.

1 Ответ

2 голосов
/ 22 декабря 2011

Я почти отказался от этого и изменил свой файл ant, чтобы создать отчет о junit и сохранить его вместе с артефактами сборки. Я изменил свою задачу муравья, чтобы быть:

    <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 был сохранен как TESTS-TestSuites.xml, , а не TEST - *. Xml. Я изменил свой файл TFSBuild.proj соответствующим образом, и теперь результаты сборки отображаются в TFS.

Каким-то образом задача junitreport по-прежнему получает выходные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...