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

时间:2019-04-09 14:05:53

标签: azure-devops

我们将NUnit测试执行从TeamCity迁移到了Azure DevOps。迄今为止最大的问题之一-无法查看绿色(通过)测试的控制台输出。 DevOps确实缺少此基本功能,还是我根本不知道在哪里看?

这是如何查看控制台输出以进行失败的测试:

Console outpur for failed tests

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

  

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

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

2 个答案:

答案 0 :(得分:3)

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>

Build attachment

trx file with output

答案 1 :(得分:1)

是的,看起来这确实是DevOps中缺少的功能。

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

TestContext.AddTestAttachment(testLogs);