23

一連のテスト全体を実行するときに、特定の順序で実行したい定義済みのRSpec Rakeタスクがたくさんあります。

私はこのようなことを試しました:

task :run_in_order => [:one, :two, :three] do 
  puts "Run suite of tests"
end

そして、最初のテストを実行してから停止し、残りのタスクは実行しません。

したがって、Rake 構文を使用すると機能しません。RSpec Rake タスクのタスク依存関係を記録する方法はありますか?

4

1 に答える 1

46

これをチェックしてくださいhttp://blog.davidchelimsky.net/2012/01/04/rspec-28-is-released/

–order rand サポートされる 2 つの値 (rand と default) を持つ --order オプションを追加しました。

rspec --order random (または rand) は、グループをランダムな順序で実行し、次に各グループ内のサンプルをランダムな順序で実行するよう RSpec に指示します。高価な before(:all) フックを再実行したくないので、(すべての例を完全にランダム化するのではなく) この方法で実装しました。結果として生じるランダム化は、順序依存性のバグを公開するのと同じくらい効果的であるため、公正なトレードオフです。

--order random を使用すると、RSpec はランダマイザーのシードに使用した乱数を出力します。順序依存のバグを発見したと思われる場合は、シードを渡すことができ、順序は一貫したままになります。

--order rand:3455 --order default は、各ファイルで宣言されているグループとサンプルをロードするよう RSpec に指示します。

基本的には、spec ファイルでテストを並べてから、オプションを付けて実行する必要があり--order defaultます。.

于 2012-04-26T07:30:41.603 に答える