【问题标题】:Outputting text in unit tests在单元测试中输出文本
【发布时间】:2010-09-17 18:01:04
【问题描述】:

当我运行我的单元测试时,我想打印出来并阅读运行一个函数需要多长时间。我尝试使用 Console.WriteLine() 和 Trace.WriteLine(),但这不起作用。我应该使用什么正确的方法?

我有以下单元测试

[TestMethod()]
public void ProductSerializationTest()
{
    Stopwatch swSerialization = new Stopwatch();
    swSerialization.Start();
    SerializeProductsToXML(dummyProductList, XMLFolderPath);
    swSerialization.Stop();
    // Print out swSerialization.Elapsed value
 }

【问题讨论】:

  • 您要打印到什么位置?调试器窗口,还是您正在从控制台应用程序运行测试并希望打印到实际控制台?
  • 我想打印到最方便的任何窗口。在我看来,Output 窗口似乎是最方便的。
  • 我刚刚使用了 Debug.Print()。在您的测试资源管理器中(在 VS 中)单击您的测试,在底部应该有一个名为 Output 的链接,单击该链接

标签: c# unit-testing mstest


【解决方案1】:

如果您使用带有内置测试支持的 Visual Studio,System.Diagnostics.Trace.WriteLine 的输出将转到测试结果报告。即你的测试运行后,在Test Results列表中双击它的条目,在测试运行报告中会出现一个名为“Debug Trace”的部分。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我最终找到了解决方案。

    在 Visual Studio 中运行测试时注意到绿色对勾或红色 x?现在单击它,然后单击显示 output 的链接。

    这显示了我所有的Trace.WriteLine()s,即使不在调试模式下也是如此。

    【讨论】:

      【解决方案3】:

      由于您使用的是Microsoft.VisualStudio.TestTools.UnitTesting,因此调用TestContext.WriteLine() 是最合理的。这是how to use a TestContext


      由于我使用 TestDriven 和 NUnit,所以我只使用 Console.WriteLine(),当我使用调试器运行测试时会显示消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多