单元测试应该使用日志记录吗?

2022-09-03 01:51:39

关于这个话题似乎有两个趋势:

  1. 一些答案(比如这个)建议单元测试不应该记录任何东西。
  2. 一些问题和答案(例如这个)建议在单元测试中使用的不同日志记录技术和格式。

单元测试是否应该记录它们执行的操作?这些附加信息在单元测试报告中是否有帮助?或者只要单元测试不失败,它们就应该是静默的?

我的问题针对Java单元测试,但其他语言程序员的输入也可能很有趣。


答案 1

这显然有点主观,但我不明白为什么你会在单元测试中禁用日志记录。

我确实认为你误解了第一个链接的帖子;发帖人并没有声称你不应该记录任何东西,而是说通过/失败不应该只是在日志中。它应该返回到测试框架。它应该是一段与普通日志完全分开的数据。

我同意他的观点。

除此之外,您仍然可以进行正常的日志记录。无论如何,在你正在测试(或应该有)的类中都有它。当测试失败时,您可能会在日志中看到一些内容,这将有助于您更快地调试它。我看不出这怎么会是一个负面的观点。


答案 2

在单元测试期间,我同时使用了安静和详细日志记录,我个人更喜欢每个测试输出一行带有测试名称及其运行方式的日志记录。当我能说出正在发生的事情时,我发现它更有吸引力,尽管我不能说它对我的工作有任何真正的影响。

如果您从控制台运行,我认为彩色输出是一个加号。


推荐