Rails 5.1使用一个命令运行系统测试和正常测试

时间:2017-08-21 13:40:58

标签: ruby-on-rails ruby-on-rails-5

在Rails 5.1中,您可以bin/rails test执行常规测试,bin/rails test:system。 Rails批准的同时运行两种方式是什么?

7 个答案:

答案 0 :(得分:7)

bin/rails test:system test

test:system之前指定test将运行系统测试和普通测试。然而,相反的顺序只会运行普通测试。

答案 1 :(得分:6)

rails test:all(Rails 6.1 +)

Rails 6.1引入了一个新命令-rails test:all

它运行测试目录中的所有测试文件,包括系统测试。

这里是link to PR。 还有一个link to the docs(请向下滚动到黄色框)。

答案 2 :(得分:2)

至少从官方的rails指南来看,似乎无法做到这一点:

  

默认情况下,运行bin / rails测试不会运行系统测试。确保运行bin / rails test:system来实际运行它们。

参考:rails guide

答案 3 :(得分:1)

如果其他人正在寻找答案:

bin/rails test test/*

答案 4 :(得分:1)

如果您打算仅使用$ rake$rake test来运行它,则可以添加到您的Rakefile中:

task test: 'test:system'

这将使'测试:系统' a"先决条件" for" test"任务

答案 5 :(得分:0)

您还可以将此代码段添加到lib / tasks文件夹中,这将使您可以选择执行rake test:all

namespace :test do desc "Run both regular tests and system tests" task :all => 'test' do Minitest.after_run {system('rake test:system')} end end

答案 6 :(得分:0)

总结所有答案以供参考:

仅限系统测试

bin/rails test:system

仅限普通测试

bin/rails test .

所有测试

bin/rails test:all