2011-08-12 10 views
1

私はかなり大きなスペックスイート(watirspec)を持って、私は、Rubyの宝石(safariwatir)に対してそれを実行していると失敗の多くがあります。2つのRSpecスイートの実行結果を比較するにはどうすればよいですか?

1002 examples, 655 failures, 1 pending 

私は宝石の変更を行い、実行しますスイート再び、時々以前に失敗スペックの多くは(この例では52)を渡す:

1002 examples, 603 failures, 1 pending 

私は以前に渡すスペックのいずれかが今している場合は、以前に失敗スペックは今渡し、そしてもちろんされている知っていただきたいと思います失敗する。私は結果を比較するために今--format documentationオプションと出力テキストファイルに結果をテストを実行することで、その後、ファイルデフ:

rspec --format documentation --out output.txt 

良い方法はありますか?テキストファイルの比較は、変更された内容を確認する最も簡単な方法ではありません。

答えて

0

私はそれを正確に行うことができるものは何も知らない。あなたがそれをひどく必要とするなら、あなた自身のフォーマッタをハッキングして、時間を費やして気にしないでください。Spec::Runner::Formatter::BaseFormatterを見てください。それはかなりよく書かれています。

1

あなたが今やっているように結果をファイルに保存して、ランダムな差分ツールを使ってその結果を比較するだけです。

+1

これは私が今やっていることですが、ファイルが非常に大きいときに変更を見るのは容易ではありません。 –

0

私は@ Serabeのソリューションを実装しました。要点:https://gist.github.com/1142145を参照してください。

ファイルmy_formatter.rbをspecフォルダに置き、rspec --formatter MyFormatterを実行します。フォーマッタは、現在の実行結果と直前の実行結果を比較し、その差をテーブルとして出力します。

注記:フォーマッタは、現在のフォルダにファイルresult.txtを作成/上書きします。

使用例:

D:\Projects\ZPersonal\equatable>rspec spec --format MyFormatter 
.......... 
No changes since last run 

Finished in 0.011 seconds 
10 examples, 0 failures 

No changes since last runラインは、フォーマッタにより添加しました。

そして今、私意図的に壊れて1と再実行RSpecの:

D:\Projects\ZPersonal\equatable>rspec spec --format MyFormatter 
..F....... 
Affected tests (1). 
PS CS Description 
. F Equatable#== should be equal to the similar sock 
PS - Previous Status 
CS - Current Status 

Failures: 

    1) Equatable#== should be equal to the similar sock 
    Failure/Error: subject.should == Sock.new(10, :black, 0) 
     expected: #<Sock:0x2fbb930 @size=10, @color=:black, @price=0> 
      got: #<Sock:0x2fbbae0 @size=10, @color=:black, @price=20> (using ==) 
     Diff: 
     @@ -1,2 +1,2 @@ 
     -#<Sock:0x2fbb930 @color=:black, @price=0, @size=10> 
     +#<Sock:0x2fbbae0 @color=:black, @price=20, @size=10> 
    # ./spec/equatable_spec.rb:30:in `block (3 levels) in <top (required)>' 

Finished in 0.008 seconds 
10 examples, 1 failure 

Failed examples: 

rspec ./spec/equatable_spec.rb:29 # Equatable#== should be equal to the similar sock 

影響を受けたスペックを持つテーブルは、フォーマッタによって追加されました:いくつかの仕様のステータスが現在と以前の実行の間で異なっている場合

Affected tests (1). 
PS CS Description 
. F Equatable#== should be equal to the similar sock 
PS - Previous Status 
CS - Current Status 

フォーマッタは以前のステータス、現在のステータス、およびスペックの説明を出力します。 '。'合格したスペックを表し、失敗の場合は「F」、未決の場合は「P」を表します。

コードは完全ではありませんので、批判して自由に変更してください。

これが役に立ちます。ご質問がある場合はお知らせください。

関連する問題