私は@ 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」を表します。
コードは完全ではありませんので、批判して自由に変更してください。
これが役に立ちます。ご質問がある場合はお知らせください。
これは私が今やっていることですが、ファイルが非常に大きいときに変更を見るのは容易ではありません。 –