Rails 3.2 プロジェクトで Guard を実行するのに問題があります。私のテスト フォルダーは、デフォルトの rails テスト構造のように見えます。
▾ test/
▾ fixtures/
customers.yml
▾ functional/
▾ integration/
▾ performance/
browsing_test.rb
▾ unit/
customer_test.rb
test_helper.rb
私のガードファイルは次のようになります。
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 のテストは実際には実行されません。を使用してコマンドラインからテストを実行するとruby -Itest test/unit/customer_test.rb
、期待どおりに動作します。Guardfile 構成で何か間違ったことをしていることはわかっていますが、それは何ですか?