【发布时间】:2011-06-03 03:49:19
【问题描述】:
有没有一种方法可以将自定义消息添加到测试方法的结果中?我想在部分代码上放一个秒表,看看它运行了多长时间。我不需要测试它是否在某个时间范围内运行,只想在结果窗口中查看经过的时间是多少。
【问题讨论】:
标签: c# visual-studio-2010 unit-testing mstest
有没有一种方法可以将自定义消息添加到测试方法的结果中?我想在部分代码上放一个秒表,看看它运行了多长时间。我不需要测试它是否在某个时间范围内运行,只想在结果窗口中查看经过的时间是多少。
【问题讨论】:
标签: c# visual-studio-2010 unit-testing mstest
假设你使用的是 MSTest,你可以使用
System.Diagnostics.Trace.WriteLine("Hello World");
输出任何你想要的。它将显示在测试运行器的完整结果中。
【讨论】:
上面的例子对我不起作用,但下面的例子对我有用:
var result = routeManager.UpdateWalkingOrder(previouspremiseFuncLoc, premiseFuncLoc, out message);
Assert.AreEqual(true, result, message);
message 是我想在测试结果的错误消息对话框中显示的任何错误。 在上面的示例中,我返回了执行该函数时捕获的错误并将其显示在我的测试结果中,这对调试很有帮助。
在您的情况下,您可以只显示运行时间。
【讨论】:
根据消息的长度,您可能需要使用Console.WriteLine。它被添加到测试结果中,列名Output (StdOut),因此您无需进入测试运行详细信息即可查看它。
我发现输出一些非常笼统的信息很有用,例如测试的属性数量,或测试实际运行的任何其他证明。
如果您没有状态消息,如果有人破坏了您的代码并从测试方法主体中删除了所有内容,该怎么办?他们现在都过去了,但它根本没有帮助。
【讨论】:
我走了同样的路,试图找到一种将消息输出到测试结果的方法。您可以简单地将您的 elapsedtime 存储到 String 中,然后使用:
Console.WriteLine(elapsedtime);
为我工作得很好。
【讨论】: