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

问题描述 投票:0回答:3

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

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

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

ruby-on-rails ruby-on-rails-5 ruby-on-rails-6
3个回答
6
投票

运行“$rails --tasks”我们发现这个新命令(我使用的是rails 6.1.3.2):

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

5
投票

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

$ 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

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

所以,这只会运行“测试”,而不是“测试:系统”

$ 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

0
投票

从 Rails 7.1 开始,这似乎不再起作用:

rails test:system test

在 Rails 7.1 中,这是有效的,并且被记录为有效:

rails test:all

根据情况添加“bin/”或“bundle exec”前缀。

© www.soinside.com 2019 - 2024. All rights reserved.