【问题标题】:VSTest.Console when run with /Logger:Console does not print debug output from test methodVSTest.Console 使用 /Logger 运行时:Console 不会从测试方法打印调试输出
【发布时间】:2017-11-29 17:31:09
【问题描述】:

我正在使用 Visual Studio 2015。 我试图打印一些语句只是为了跟踪一个非常长时间运行的测试。当将 VSTest.Console 与 /Logger:trx 一起使用时,调试输出(无论我们使用 Console.WriteLine()、Debug.Writeline() 还是 Trace.WriteLine())都会进入生成的 trx 文件。但是,当使用 /Logger:Console 运行时,自定义调试输出不会显示在控制台输出上:只显示测试结果。我什至参考了以下内容编写了自己的扩展:

https://blogs.msdn.microsoft.com/vikramagrawal/2012/07/26/writing-loggers-for-command-line-test-runner-vstest-console-exe/

但是,不清楚如何从测试内部发送 TestMessage 以便调用 TestMessageHandler 并打印输出。

我认为扩展在这里实际上可能是多余的,我可以使用作为 Visual Studio 扩展一部分的控制台记录器。也许我需要进行特定的调用来发送信息性消息,或者需要使用适当的命令行开关。

我现在正在使用以下命令:

Vstest.Console.exe <Test dll> /logger:Console

测试运行但仅产生以下输出:

开始测试执行,请稍候... 通过了TestMethod1

测试总数:1。通过:1。失败:0。跳过:0。 试运行成功。 测试执行时间:3.3929 秒

而 trx 文件在输出部分下有以下部分,其中包括 console.writeline() 和 debug.trace() 输出: (下面的文字只是为了举例)

<Output>
    <StdOut>
    Test Started
    Test Ended
    Debug Trace:
    Test started
    Test ended
    </StdOut>
</Output>

我想知道在使用控制台记录器时是否也可以显示相同的信息。

【问题讨论】:

    标签: console vstest.console


    【解决方案1】:

    现在在 VS 2017 15.5.2+ 中改变了行为,它现在发出输出。

    【讨论】:

    • 太棒了!当我有机会时,我会测试一下。谢谢!
    • 它只适用于失败的测试,在通过的测试中它仍然不显示调试消息
    猜你喜欢
    • 2015-12-25
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多