我有一个rails 4.0.2项目,我使用的是guard 4.7.5,guard-minitest 2.2.0和spring 1.1.0。
当我的Guardfile读取:
guard :minitest, spring: true do
…
end
我在守卫时获得弹簧使用信息。
根据guard-minitest README,如果我的Guardfile读取:
guard :minitest, spring: 'rake test' do
…
end
它会运行所有默认测试(请参阅rake -T
)。
实际上,当单独运行rake test
时,我输入的内容并不重要,始终运行默认测试。运行bundle exec rake test [whatever]
会产生相同的结果。
我错过了什么?
答案 0 :(得分:2)
guard :minitest, spring: 'rake test' do
…
end
适用于我的设置(即,它只运行正确的测试),但它不会在通知程序中显示详细的统计信息(只是传递/不传递)。
你的行动中是否有合适的观察者?
我基本上使用的是guard init
给了我的东西,但是我已经取消了Rails 4下的观察者的注释,并对其余部分进行了评论。我的完整minitest
阻止:
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
我正在使用:
答案 1 :(得分:0)
从Rails 4.1.6开始,它似乎开箱即用。我刚刚将spring: true
添加到我的Guardfile
并且它有效。在修改文件时运行正确的测试,并且它似乎比没有Spring的情况下启动更快。
我的设置:Ruby 2.1,Rails 4.1.6,Guard 2.6.0,guard-minitest 2.3.2,Spring 1.1.3,minitest 5.4.2。
答案 2 :(得分:0)
你能运行bin \ rake spring test吗?
如果没有,那就是你的问题,因为“spring:true”运行bin \ rake。