如何在 Rails 6 中一次 运行 所有测试,包括系统测试?

How to run all tests, including system tests, at once in Rails 6?

要在 Rails 5+ 中进行 运行 测试,我会执行两个单独的命令:

$ rails test
# Running:
........    
$ rails test:system
# Running:
........

如何从一个命令行请求中运行两组测试?

要运行所有的测试,可以全部列出来:

$ rails test:system test:models test:mailers ....

您将得到正确的汇总总数:

Finished in 15.824006s, 1.8327 runs/s, 4.2973 assertions/s.
30 runs, 69 assertions, 0 failures, 0 errors, 0 skips

快捷方式是:

$ rails test:system test
Finished in 14.427353s, 2.0794 runs/s, 4.7826 assertions/s.
30 runs, 69 assertions, 0 failures, 0 errors, 0 skips

这将执行所有测试,因为“测试”包括除 'test:system' 之外的所有测试。需要注意的是,如果您首先列出 'test',它不会 运行 您的系统测试。

所以,这只会 运行 'test',而不是 'test:system'

$ rails test test:system
Finished in 0.736070s, 13.5857 runs/s, 23.0956 assertions/s.
10 runs, 17 assertions, 0 failures, 0 errors, 0 skips

运行 "$ rails --tasks" 我们找到这个新命令(我使用的是 rails 6.1.3.2):

$ rails test:all   # Runs all tests, including system tests