首页 > 解决方案 > Azure DevOps:缺少绿色测试的控制台输出

问题描述

我们将 NUnit 测试执行从 TeamCity 迁移到 Azure DevOps。迄今为止最大的问题之一 - 无法查看绿色(通过)测试的控制台输出。DevOps 中是否真的缺少这个基本功能,或者我根本不知道去哪里找?

以下是查看失败测试的控制台输出的方法:

失败测试的控制台输出

更新:在文档中有一个“提示”(https://docs.microsoft.com/en-us/azure/devops/pipelines/test/review-continuous-test-results-after-build?view=azure-开发者):

如果您使用 Visual Studio 测试任务运行测试,则从测试记录的诊断输出(使用任何 Console.WriteLine、Trace.WriteLine 或 TestContext.WriteLine 方法)将显示为失败测试的附件。

文本明确指出“测试失败”。看起来确实没有办法(没有简单的方法)查看非失败测试的控制台输出,这非常令人沮丧。

标签: azure-devopsazure-pipelines

解决方案


Azure DevOps 不显示已通过测试的控制台输出:

该产品目前不支持打印控制台日志以通过测试,我们目前没有计划在不久的将来支持此功能。


他们建议将控制台输出写入文件并将文件作为测试附件上传:

但是,要实现您想要的,您几乎是在正确的道路上。将必要的信息写入文件并作为测试附件上传是正确的方法。您可以使用此 API 附加文件,它将作为测试用例级别的附件自动上传到 azure devops:https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.testtools.unittesting。 testcontext.addresultfile?view=mstest-net-1.2.0


(这两个报价的来源:https ://developercommunity.visualstudio.com/content/problem/631082/printing-the-console-output-in-the-azure-devops-te.html )


还有另一种方法可以获取成功测试的输出:

您的构建将有一个带有文件扩展名的附件.trx。这是一个 XML 文件,包含Output每个测试的元素(另请参阅https://stackoverflow.com/a/55452011):

<TestRun id="[omitted]" name="[omitted] 2020-01-10 17:59:35" runUser="[omitted]" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Times creation="2020-01-10T17:59:35.8919298+01:00" queuing="2020-01-10T17:59:35.8919298+01:00" start="2020-01-10T17:59:26.5626373+01:00" finish="2020-01-10T17:59:35.9209479+01:00" />
  <Results>
    <UnitTestResult testName="TestMethod1">
      <Output>
        <StdOut>Test</StdOut>
      </Output>
    </UnitTestResult>
  </Results>
</TestRun>

构建附件

带有输出的 trx 文件


推荐阅读