我们有一个应用程序并使用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测试任务的输出在某种程度上与“正常”控制台/调试/跟踪日志分离。
我想有一种简单的方法可以将日志添加到输出中,但我找不到它。
感谢您的帮助。
答案 0 :(得分:3)
目前,vs测试任务仅在测试失败时显示日志中的输出。
如果通过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任务日志中看到了输出。