在MSTEST期间将实时输出写入窗口或文本窗格

Rob*_*vey 3 c# .net-3.5 visual-studio-2008

我正在使用Trace工具进行日志记录,我希望日志输出在测试期间出现在Visual Studio 某个窗口或文本窗格中.

实现这一目标的最简单方法是什么? Debug.Print()语句仅在测试结束时出现.试图打开一个控制台窗口似乎是一个非启动器(它不是一个控制台应用程序,我似乎无法得到正确的句柄).

我正在使用自己的静态Log类,所以我不必使用Trace来执行此操作.

sll*_*sll 7

System.Diagnostics.Debug.WriteLine()
Run Code Online (Sandbox Code Playgroud)

如果您在调试模式下运行,Visual Studio输出窗口将捕获它,这不应该依赖于测试执行阶段(测试的开始/结束),因此应该在执行后立即在调试输出中跟踪它.

这种输出也可以通过像DbgView这样的工具捕获和过滤

编辑:回答评论

我已经创建了MSTest测试,并且能够在调试窗口中观察每一行每秒的出现次数:(在输出窗口中,您可以选择Build/Debug,请确保您Debug在下拉列表中选择了选项)

[TestMethod]
public void TestMethod1()
{
    int i = 10;

    while(i-- > 0)
    {
        Thread.Sleep(1000);
        Debug.WriteLine("Step #" + i);
    }
}
Run Code Online (Sandbox Code Playgroud)

必须从Test\Debug\Tests In Current Context菜单中运行测试.右键单击上下文菜单中的"运行测试"选项将不起作用.