Azure DevOps:缺少绿色测试的控制台输出

Rom*_*man 16 azure-devops azure-pipelines

我们将 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 方法)记录的诊断输出将显示为失败测试的附件。

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

riQ*_*iQQ 7

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每个测试的元素(另请参见/sf/answers/3881640801/):

<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>
Run Code Online (Sandbox Code Playgroud)

建立附件

带有输出的 trx 文件

  • 谢谢。是的,我可以使用此技巧通过写入文件来获取控制台日志,但这太不方便了。这样一个简单的功能应该像在任何其他 CI 系统中一样工作。 (4认同)

har*_*yAJ 6

所以,是的,这看起来确实是 DevOps 中缺失的功能。

我们能想到的(唯一?)解决方法是将所有控制台输出写入日志文件...然后将此日志文件作为附件添加到测试的 TearDown 方法中:

TestContext.AddTestAttachment(testLogs);