单元测试显示输出

Moh*_*bet 13 unit-testing

我搜索单元测试工具,我发现合适的一个是NUnit,我认为它很好,但我的问题是这个工具只显示测试方法结果(通过或失败),我需要显示不仅通过或失败输出.如何使用NUnit显示输出或是否还有其他单元测试工具?如果不支持,请建议我如何解决它.

欢迎所有想法

bry*_*ook 5

管道 System.Console 的输出将适用于 NUnit,但这不是您的最佳选择。

对于通过测试,您不需要查看控制台输出来验证测试是否已通过。如果你是,你做错了。测试应该是自动化和可重复的,无需人工干预。手动验证不会扩展并产生误报。

另一方面,为失败的测试提供控制台输出是有帮助的,但它只会提供可以通过附加调试器推断出的信息。将控制台日志记录添加到您的应用程序需要付出很多额外的努力,但收益甚微。

相反,请确保您的错误消息是有意义的。在编写测试时,请确保您的断言是明确的。始终尝试使用与您正在断言的对象非常吻合的断言,并提供一个失败消息,解释为什么测试很重要。

例如:

// very bad
Assert.IsTrue( collection.Count == 23 );
Run Code Online (Sandbox Code Playgroud)

当测试失败时,上述断言并没有真正提供太多帮助。当 NUnit 格式化断言的输出时,这个断言不会帮助你,因为它会声明类似“期待 <True> 但为 <False> ”。

更合适的断言将提供更有意义的测试失败。

// much better
Assert.AreEqual(23, collection.Count, 
               "There should be a minimum of 23 items by default.");
Run Code Online (Sandbox Code Playgroud)

这提供了更有意义的失败消息:“预期 <23> 但为 <0>:默认情况下应至少有 23 个项目。

  • 我也认为这是一般输出。我的观点是,如果因为通过/失败还不够而不得不依赖一般输出,那么您应该重新考虑您的测试方法。 (2认同)

Jes*_*mos 4

在 NUnit 的底部栏上,您可以单击“文本输出”,它会显示所有调试和控制台输出。