使用/ Logger运行时的VSTest.Console:控制台不会从测试方法打印调试输出

时间:2017-06-26 19:16:33

标签: console vstest.console

我正在使用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 Extensions的一部分的控制台记录器。也许我需要进行特定的调用来发送信息性消息,或者需要使用正确的命令行开关。

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

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>

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

1 个答案:

答案 0 :(得分:2)

现在VS 2017 15.5.2+中的行为发生了变化,它现在会发出输出。