我遇到让Guard在我的Rails 3.2项目中运行的问题。我的测试文件夹看起来像默认的rails测试结构:
▾ test/
▾ fixtures/
customers.yml
▾ functional/
▾ integration/
▾ performance/
browsing_test.rb
▾ unit/
customer_test.rb
test_helper.rb
我的Guardfile看起来像这样:
guard 'minitest' do
# with Minitest::Unit
watch(%r|^test/(.*)\/?test_(.*)\.rb|)
watch(%r|^lib/(.*)([^/]+)\.rb|) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
watch(%r|^test/test_helper\.rb|) { "test" }
# with Minitest::Spec
watch(%r|^spec/(.*)_spec\.rb|)
watch(%r|^lib/(.*)([^/]+)\.rb|) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
watch(%r|^spec/spec_helper\.rb|) { "spec" }
# Rails 3.2
watch(%r|^app/controllers/(.*)\.rb|) { |m| "test/controllers/#{m[1]}_test.rb" }
watch(%r|^app/helpers/(.*)\.rb|) { |m| "test/helpers/#{m[1]}_test.rb" }
watch(%r|^app/models/(.*)\.rb|) { |m| "test/unit/#{m[1]}_test.rb" }
# Rails
# watch(%r|^app/controllers/(.*)\.rb|) { |m| "test/functional/#{m[1]}_test.rb" }
# watch(%r|^app/helpers/(.*)\.rb|) { |m| "test/helpers/#{m[1]}_test.rb" }
# watch(%r|^app/models/(.*)\.rb|) { |m| "test/unit/#{m[1]}_test.rb" }
end
但是在守卫时,它只是说它正在观察,但实际上并没有在customer_test.rb中运行任何测试,即使我明确要求它运行minitests。如果我使用ruby -Itest test/unit/customer_test.rb
从命令行运行测试,它们将按预期运行。我知道我在Guardfile配置中做错了什么,但它究竟是什么?
答案 0 :(得分:0)
关于run_all_on_start
功能,目前这是Unreleased features for the v1.0.0的一部分。希望很快就能发布新的测试版。在此期间,您可以尝试使用以下的守卫 - minitest:
gem 'guard-minitest', github: 'guard/guard-minitest'
请在尝试主分支后向GitHub issue tracker报告任何问题,谢谢!