2

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

我错过了什么?

4

3 回答 3

2
guard :minitest, spring: 'rake test' do
  …
end

适用于我的设置(即,它运行正确的测试),尽管它没有在通知程序中显示详细的统计信息(只是通过/不通过)。

你的 do 块中是否有合适的观察者?我基本上是在使用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
  • 守卫版本 2.6.0
  • 春季版 1.1.2
  • 导轨 4.1.0
  • Minitest-5.5.5
于 2014-05-02T12:46:51.727 回答
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。

于 2014-10-28T08:41:12.877 回答
0

你可以运行 bin\rake 弹簧测试吗?

如果不是,那是你的问题,因为 "spring: true" 运行 bin\rake。

于 2015-02-16T21:32:50.707 回答