NUnit测试结果需要什么格式才能发布回TFS 2010版本?

问题描述 投票:1回答:1

我有一些xUnit测试作为构建的一部分运行,我需要将结果发布回TFS 2010,以便它们像正常测试一样显示在构建摘要/日志中。

我使用-nunit参数执行测试,以便输出是NUnit xml而不是xUnit。我正在尝试使用NUnit4TeamBuild将结果xml发布回TFS,看起来它正在工作,但最后没有任何测试结果。

这是该步骤的详细日志:

Publish xUnit Results
NUnitTfs.exe -n results.xml -t Project -b "Build_20171221.8" -v 2010
Loading NUnit Output from results.xml...
Transforming NUnit output to .trx file...
Adding build information to .trx file...
Publishing .trx file...
Checking test run does not exist...
Reading users identity...
Creating test run...
Creating test results...
Updating test run with details...
Uploading test run details...
Uploading assemblies...
Updating test results with details...
Uploading test result details...

构建完成时出现0错误和0警告,但在构建摘要中也显示“无测试结果”,并且在任何地方都没有测试结果。

我不知道为什么测试没有发布。

这是它试图发布的XML的一个例子(注意我已经改变了文件路径并缩短了堆栈跟踪):

<?xml version="1.0" encoding="utf-8"?>
<test-results name="Test results" errors="0" inconclusive="0" ignored="0" invalid="0" not-run="0" date="2017-12-21" time="08:39:57" total="1" failures="1" skipped="0">
  <environment os-version="unknown" platform="unknown" cwd="unknown" machine-name="unknown" user="unknown" user-domain="unknown" nunit-version="xUnit.net 2.3.1.3858" clr-version="64-bit .NET 4.0.30319.34209 [collection-per-class, non-parallel]" />
  <culture-info current-culture="unknown" current-uiculture="unknown" />
  <test-suite type="Assemblies" name="C:\Tests.DLL" executed="True" success="False" result="Failure" time="57.41">
    <results>
      <test-suite type="Assembly" executed="True" name="C:\Tests.DLL" result="Failure" success="False" time="57.410">
        <results>
          <test-suite type="TestCollection" executed="True" name="Tests" result="Failure" success="False" time="48.992">
            <results>
              <test-case name="Google_Search_Test" executed="True" result="Failure" success="False" time="48.9917024">
                <failure>
                  <message>System.Exception : Test Failed. Exception has been thrown by the target of an invocation.</message>
                  <stack-trace>at Tests.Fixtures.Fixture.FormatException(Exception e) in... etc. </stack-trace>
                </failure>
              </test-case>
            </results>
          </test-suite>
        </results>
      </test-suite>
    </results>
  </test-suite>
</test-results>
tfs nunit tfs2010 tfsbuild xunit
1个回答
0
投票

TFS 2010使用具有“.trx”扩展名的专有结果格式来发布结果,因此我们需要在通过Web服务发回之前转置NUnit结果。

您可以使用NUnitTFS for xUnit,只需尝试由Ian Battersby提供的工作流模板NUnitAndPublishTemplate.xaml

有关详细信息,请参阅Ian Battersby的博客:Running and publishing NUnit test results into TFS 2010

© www.soinside.com 2019 - 2024. All rights reserved.