【问题标题】:Writing real-time output to a window or text pane during MSTEST在 MSTEST 期间将实时输出写入窗口或文本窗格
【发布时间】:2011-10-26 03:49:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# visual-studio-2008 .net-3.5


    【解决方案1】:
    System.Diagnostics.Debug.WriteLine()
    

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

    这种输出也可以被DbgView等工具捕获和过滤

    编辑:回复评论

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

    [TestMethod]
    public void TestMethod1()
    {
        int i = 10;
    
        while(i-- > 0)
        {
            Thread.Sleep(1000);
            Debug.WriteLine("Step #" + i);
        }
    }
    

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

    【讨论】:

    • 是的,但据我所知不是实时的。我只有在测试完成后才能得到输出。
    • 你叫它Debug Window.它的确切名称是什么,我在VS菜单的什么地方可以找到它?
    • Visual Studio 菜单:查看 -> 输出 -> 选择选项“显示调试输出”
    • 是的,纳达。测试项目设置为调试。所有的写入行都出现在测试结果调试跟踪中,但 zippo 出现在输出/调试窗口中。
    • 就是这样。看起来你实际上必须Test/Debug/Tests in Current Context;你不能只是Right Click/Run Tests
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2023-03-24
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    相关资源
    最近更新 更多