VSTS + Visual Studio测试:添加其他日志以测试输出

时间:2017-05-30 09:21:43

标签: visual-studio mstest azure-pipelines

我们有一个应用程序并使用VSTS进行自动构建,测试和部署。到目前为止一切正常。我只有一个问题。我想在测试日志中添加一些额外的日志。

我们在构建管道中添加了一个简单的“Visual Studio Test”(V2)任务,它基本上执行了它可以找到的所有程序集的所有测试(默认设置)。当我想添加其他日志时,我通常使用Console.WriteLine("bla, bla, bla"),它会在本地测试输出中显示。

但同样的事情不适用于VSTS测试任务。我只看到默认输出(例如2017-05-30T09:10:48.5505381Z Passed ValidatePassword_ShouldSucceed_WhenCorrectPasswordIsSet),但没有看到额外的WriteLine()来电。我已经尝试了其他几个WriteLines:

TestContext.WriteLine($"bla, bla, bla");
Console.WriteLine($"bla, bla, bla");
Trace.WriteLine($"bla, bla, bla");
Debug.WriteLine($"bla, bla, bla");

他们都没有奏效。所以我想VSTS测试任务的输出在某种程度上与“正常”控制台/调试/跟踪日志分离。

我想有一种简单的方法可以将日志添加到输出中,但我找不到它。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

目前,vs测试任务仅在测试失败时显示日志中的输出。

enter image description here

如果通过vs测试步骤,则不会在日志中输出消息。

我发布了一个用户语音Visual Studio Test task show standard output in VSTS build log,您可以投票并跟进。

另一方面,您可以在$(Build.SourcesDirectory)\TestResults\xx.trx中找到暂时使用的输出:

  <Results>
    <UnitTestResult executionId="0ab084d5-e9cc-46af-898e-c57cae7a8ae7" testId="fd1a9d66-d059-cd84-23d7-f655dce255f5" testName="TestMethod1" computerName="computer" duration="00:00:00.0128766" startTime="2017-05-31T15:12:51.9527754+08:00" endTime="2017-05-31T15:12:52.0627885+08:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0ab084d5-e9cc-46af-898e-c57cae7a8ae7">
      <Output>
        <StdOut>bla, bla, bla</StdOut>
      </Output>
    </UnitTestResult>
    <UnitTestResult executionId="d54ccde2-5cbe-44be-8d02-e81130b8f370" testId="fd1a9d66-d059-cd84-23d7-f655dce255f5" testName="TestMethod1" computerName="computer" duration="00:00:00.0139917" startTime="2017-05-31T15:12:52.3167945+08:00" endTime="2017-05-31T15:12:52.4268050+08:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d54ccde2-5cbe-44be-8d02-e81130b8f370">
      <Output>
        <StdOut>bla, bla, bla</StdOut>
      </Output>
    </UnitTestResult>
  </Results>

答案 1 :(得分:0)

自从提出此问题以来,他们一定已经添加了此功能。我只是将Console.WriteLine(“ some output ...”)添加到我的xUnit测试中,并且在VsTest任务日志中看到了输出。