最小测试-如何查看失败的测试

问题描述

我正在处理具有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摘要为我提供了大多数情况下所需的大部分上下文。