Minitest——如何查看失败的测试

Minitest—how to see the failed tests

我正在开发一个包含 731 项测试的应用程序,如果 6 项测试失败,我必须滚动浏览 731 行以尝试找出每一项失败,以便解决问题。

有没有办法让minitest在底部打印所有失败的测试?或者任何可以帮助我确定哪些测试失败的东西?

我经常使用大量测试,其中一些测试具有相当详细的诊断输出。所以我将 STDOUTSTDERR 重定向到一个日志文件,然后 grep 该文件以查找如下错误:

bundle exec rake test:all &> test.log
grep -P -i -C3 'error|fail' test.log

示例输出:

...
Failure:
FooBarTest#test_foo [/path/to/foo_bar_test.rb:64]:
Expected: 3
  Actual: 4
...
Finished in 3.945161s, 13.9411 runs/s, 162.4775 assertions/s.
55 runs, 641 assertions, 1 failures, 0 errors, 0 skips

在这里,grep 是 运行 选项:
-P : 使用 Perl 正则表达式,
-i :不区分大小写,
-C3 :在匹配行上方打印 3 行,在匹配行下方打印 3 行,以提供失败测试的更多上下文。

有时我会跟进并查看编辑器中的测试日志文件以获取有关诊断消息等的详细信息。但是 grep 摘要为我提供了大多数我需要的上下文案例。