guard-minitest + spring没有按预期工作

时间:2014-01-30 09:31:31

标签: ruby-on-rails ruby-on-rails-4 guard minitest rails-spring

我有一个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]会产生相同的结果。

我错过了什么?

3 个答案:

答案 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

我正在使用:

  • ruby​​ 2.0.0p451(2014-02-24修订版45167)[x86_64-linux]
  • 护MINITEST-2.2.0
  • Guard版本2.6.0
  • Spring version 1.1.2
  • Rails 4.1.0
  • MINITEST-5.5.5

答案 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。