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 方法)记录的诊断输出将显示为失败测试的附件。
文本明确指出“对于失败的测试”。看起来确实没有办法(没有简单的方法)看到非失败测试的控制台输出,这非常令人沮丧。
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)


所以,是的,这看起来确实是 DevOps 中缺失的功能。
我们能想到的(唯一?)解决方法是将所有控制台输出写入日志文件...然后将此日志文件作为附件添加到测试的 TearDown 方法中:
TestContext.AddTestAttachment(testLogs);
| 归档时间: |
|
| 查看次数: |
2667 次 |
| 最近记录: |