更改Rails / Rake测试默认行为

时间:2017-08-29 17:19:44

标签: ruby-on-rails

根据Rails guide for testing

  

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

有谁知道如何更改默认行为,以便它将运行所有测试,包括系统测试?

1 个答案:

答案 0 :(得分:0)

我试图这样做。

我认为让rails test也运行系统测试需要重新定义rake任务。对于我可以调查的内容,任务是在railties gem testing.rake目录中的/lib文件中定义的:

desc "Runs all tests in test folder except system ones"
  task :test do
  $: << "test"
  if ENV.key?("TEST")
    Minitest.rake_run([ENV["TEST"]])
  else
    Minitest.rake_run(["test"], ["test/system/**/*"])
  end
end

else内函数中的第二个参数是运行测试时要排除的模式。

这里Overriding rails' default rake tasks 解释了如何覆盖它们,但是我无法以这种方式工作。

如果它对您有所帮助,我会使用bundle exec rake test:system test而不是同时系统和所有其他测试