3

WinMergeReporter でしばらく承認テストを使用してきましたが、標準の NUnit ランナー実行可能ファイルでうまく機能しています。

私はNCrunchと承認を試しています.Verifyは(予想どおり)新しい承認に失敗します。

ただし、WinMerge は起動しません。

私は失敗を得る

ApprovalTests.Core.Exceptions.ApprovalMissingException : 承認に失敗しました: 承認ファイル "...\mytest.approved.txt" が見つかりません。ApprovalTests.Approvers.FileApprover.Fail() で

NUnit ランナーで同じコードを実行すると、WinMerge が起動します。

NCrunch が WinMergeReporter を起動する秘訣は何ですか?

4

1 に答える 1

8

NCrunch が失敗するたびに winmerge がポップアップするのは非常に面倒なので、これは実際には設計によるものです。特にフォーカスを奪うので。

ただし、必要に応じて、機能する理由と変更方法を次に示します (いつでも元に戻すことができます)。

Approval Tests には、アセンブリからのフロント ロードを使用して GangOfFour の「責任の連鎖」パターンを実装する MultiReporter システムがあります。があるかのように動作します。

[assembly: FrontLoadedReporter(typeof(NCrunchReporter))]

これは実際にそこにある必要はありません。実際に何も存在しない場合、承認テストはそれをデフォルトとして想定します。

したがって、オフにしたい場合は、次のようにすることができます

[assembly: FrontLoadedReporter(typeof(AlwaysFaillingReporter))]

そのレポーターが存在しないことを除いて (作成するのは簡単ですが:-)

[assembly: FrontLoadedReporter(typeof(WinMergeReporter))]

ハッピーテスト!

于 2012-07-25T09:02:07.357 に答える