默认情况下,rails test
不运行系统测试,必须调用rails test:system
才能运行系统测试。鉴于正在使用 Guard , Guardfile 的正确添加是什么, guard 将会:
我尝试过类似的事情:
guard :minitest, spring: true do
# ...
watch(%r{^test/system\/?(.*)_test\.rb$}) { 'test' }
# ...
end
但似乎我没有接受过配置Guard的教育。
答案 0 :(得分:1)
Rails特别排除了使用rails test
运行系统测试,因为它们要慢得多。建议的工作流程是在您工作时运行快速单元测试(即保护),并在准备好承诺确认功能后运行系统测试。
如果你想要这样做,你需要添加一个新的Guard插件(guard :yourthing { ... }
),或者你可以简单地配置rails test
命令以包括rails test:system
使用耙子:
# Rakefile
Rake::Task["test"].enhance ["test:system"]
这会使rake
,rake test
和rake test:run
都运行您的系统测试,包括从Guard运行时。