首页 > 解决方案 > Minitest——如何查看失败的测试

问题描述

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

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

标签: ruby-on-railstestingminiteststderr

解决方案


我经常使用大量测试,其中一些测试具有相当详细的诊断输出。所以我重定向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摘要为我提供了大多数情况下我需要的大部分上下文。


推荐阅读