我有一个 Rails 4.0.2 项目,我使用的是guard 4.7.5、guard-minitest 2.2.0 和 spring 1.1.0。
当我的 Guardfile 读取时:
guard :minitest, spring: true do
…
end
我在运行守卫时获取 spring 使用信息。
根据 guard 部长 README ,如果我的 Guardfile 内容如下:
guard :minitest, spring: 'rake test' do
…
end
它运行所有默认测试(请参阅rake -T
)。
事实上,当单独运行rake test
时,无论我之后输入什么内容,它总是运行默认测试。运行 bundle exec rake test [whatever]
会产生相同的结果。
我错过了什么?
请您参考如下方法:
guard :minitest, spring: 'rake test' do
…
end
适用于我的设置(即,它只运行正确的测试),尽管它没有在通知程序中显示详细的统计信息(仅通过/未通过)。
你的 do block 中有合适的观察者吗? 我基本上使用的是 Guard init 给我的东西,但我取消了 Rails 4 下观察者的注释,注释掉了其余的部分。我完整的 minitest
do block :
guard :minitest, spring: 'rake test' do
#Rails 4
watch(%r{^app/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
watch(%r{^app/controllers/application_controller\.rb$}) { 'test/controllers' }
watch(%r{^app/controllers/(.+)_controller\.rb$}) { |m| "test/integration/#{m[1]}_test.rb" }
watch(%r{^app/views/(.+)_mailer/.+}) { |m| "test/mailers/#{m[1]}_mailer_test.rb" }
watch(%r{^lib/(.+)\.rb$}) { |m| "test/lib/#{m[1]}_test.rb" }
watch(%r{^test/.+_test\.rb$})
watch(%r{^test/test_helper\.rb$}) { 'test' }
end
我正在使用:
- ruby 2.0.0p451(2014-02-24 修订版 45167)[x86_64-linux]
- guard-minitest-2.2.0
- 守卫版本2.6.0
- Spring 版本 1.1.2
- Rails 4.1.0
- Minitest-5.5.5