如何配置Guard来运行Rails 5系统测试?

时间:2017-12-19 18:09:07

标签: ruby-on-rails testing

默认情况下,rails test不运行系统测试,必须调用rails test:system才能运行系统测试。鉴于正在使用 Guard Guardfile 的正确添加是什么, guard 将会:

  1. 运行所有测试,包括系统测试。
  2. 更改后运行相应的系统测试。
  3. 我尝试过类似的事情:

    guard :minitest, spring: true do
      # ...
      watch(%r{^test/system\/?(.*)_test\.rb$})  { 'test' }
      # ...
    end
    

    但似乎我没有接受过配置Guard的教育。

1 个答案:

答案 0 :(得分:1)

Rails特别排除了使用rails test运行系统测试,因为它们要慢得多。建议的工作流程是在您工作时运行快速单元测试(即保护),并在准备好承诺确认功能后运行系统测试。

如果你想要这样做,你需要添加一个新的Guard插件(guard :yourthing { ... }),或者你可以简单地配置rails test命令以包括rails test:system使用耙子:

# Rakefile
Rake::Task["test"].enhance ["test:system"]

这会使rakerake testrake test:run都运行您的系统测试,包括从Guard运行时。