1

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 構成で何か間違ったことをしていることはわかっていますが、それは何ですか?

4

1 に答える 1