【问题标题】:Add custom message to unit test result向单元测试结果添加自定义消息
【发布时间】:2011-06-03 03:49:19
【问题描述】:

有没有一种方法可以将自定义消息添加到测试方法的结果中?我想在部分代码上放一个秒表,看看它运行了多长时间。我不需要测试它是否在某个时间范围内运行,只想在结果窗口中查看经过的时间是多少。

【问题讨论】:

    标签: c# visual-studio-2010 unit-testing mstest


    【解决方案1】:

    假设你使用的是 MSTest,你可以使用

    System.Diagnostics.Trace.WriteLine("Hello World");
    

    输出任何你想要的。它将显示在测试运行器的完整结果中。

    【讨论】:

    • 这确实有效。但是有没有办法命名输出,比如说捕获通过的测试数据来记录它
    【解决方案2】:

    上面的例子对我不起作用,但下面的例子对我有用:

    var result = routeManager.UpdateWalkingOrder(previouspremiseFuncLoc, premiseFuncLoc, out message);
    
    Assert.AreEqual(true, result, message);
    

    message 是我想在测试结果的错误消息对话框中显示的任何错误。 在上面的示例中,我返回了执行该函数时捕获的错误并将其显示在我的测试结果中,这对调试很有帮助。

    在您的情况下,您可以只显示运行时间。

    【讨论】:

      【解决方案3】:

      根据消息的长度,您可能需要使用Console.WriteLine。它被添加到测试结果中,列名Output (StdOut),因此您无需进入测试运行详细信息即可查看它。

      我发现输出一些非常笼统的信息很有用,例如测试的属性数量,或测试实际运行的任何其他证明。

      如果您没有状态消息,如果有人破坏了您的代码并从测试方法主体中删除了所有内容,该怎么办?他们现在都过去了,但它根本没有帮助。

      【讨论】:

        【解决方案4】:

        我走了同样的路,试图找到一种将消息输出到测试结果的方法。您可以简单地将您的 elapsedtime 存储到 String 中,然后使用:

        Console.WriteLine(elapsedtime);

        为我工作得很好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-19
          • 1970-01-01
          相关资源
          最近更新 更多