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

Car*_*ole 5 ruby-on-rails ruby-on-rails-5 ruby-on-rails-6

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

$ rails test
# Running:
........    
$ rails test:system
# Running:
........
Run Code Online (Sandbox Code Playgroud)

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

Car*_*ole 5

要运行所有测试,您可以将它们全部列出:

$ rails test:system test:models test:mailers ....
Run Code Online (Sandbox Code Playgroud)

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

Finished in 15.824006s, 1.8327 runs/s, 4.2973 assertions/s.
30 runs, 69 assertions, 0 failures, 0 errors, 0 skips
Run Code Online (Sandbox Code Playgroud)

捷径是:

$ 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
Run Code Online (Sandbox Code Playgroud)

它将执行所有测试,因为“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
Run Code Online (Sandbox Code Playgroud)