1

Railsアプリの関連ファイルの1つが変更されるたびに、自動テストを取得してステーキ受け入れテストを実行したいと思います。RspecとCucumberの自動テスト構成を調べた後、次のマッピングを試しています。


Autotest.add_hook :initialize do |at|
  at.add_mapping(%r%^spec/acceptance/.*_spec.rb$%, true) { |filename, _|
    filename
  }

at.add_mapping(%r%^app/(models|controllers|helpers|lib)/.rb$%) { at.files_matching %r%^spec/acceptance/._spec.rb$% }

at.add_mapping(%r%^app/views/(.*)/.rb$%) { at.files_matching %r%^spec/acceptance/._spec.rb$% } end

最初のものは機能します:ステーキの仕様が変更されるたびに、それは再び実行されます。

しかし、2番目と3番目はそうではありません。/appサブディレクトリの下のソースファイルの変更は無視されます。

これらのマッピングを機能させる正しい方法は何ですか?

ありがとうオリバー

4

2 に答える 2

3

.autotestファイルを変更して次のものを追加しました。

Autotest.add_hook :initialize do |at|
  at.add_mapping(%r%^spec/acceptance/.*_spec.rb$%, true) { |filename, _|
    filename
  }

  at.add_mapping(%r%^app/(models|controllers|helpers|lib)/.*rb$%, true) {
    at.files_matching %r%^spec/acceptance/.*_spec.rb$%
  }

  at.add_mapping(%r%^app/views/(.*)$%, true) {
    at.files_matching %r%^spec/acceptance/.*_spec.rb$%
  }
end

そして、これは機能していますが、他の人の前に受け入れテストを呼び出すことの副次的な効果はわかりません(のtrueフラグadd_mapping

于 2010-08-28T17:50:00.467 に答える
0

RSpec 1.3の場合:

組み込みのRSpecサポートは、既存のすべてのマッピングをクリアすることから始まるため、:post_initializeフックを使用する必要がありました。したがって、これらをクリアしてから、デフォルトのRSpecマッピングを追加していました。しかし、(最初の行の:initializeの代わりに):post_initializeフックを使用すると修正されました。

また、これらすべてを.autotestではなくautotest/discover.rbに配置する必要がありました。

于 2011-10-07T17:49:58.950 に答える