異なるバージョンの OS で WpfApprovals を使用すると問題が発生しました。私の個人用ラップトップは Windows 7 Enterprise を実行しており、ビルド サーバーは Windows 7 professional を実行しています。WpfApprovals は承認ファイル名に OS 名を使用しているため、ビルド サーバーでテストが失敗しています。
承認名に OS を含めないようにいくつかのオプションを試しましたが、この動作は WpfApprovals.cs でハードコーディングされているようです...
public static void Verify(Control control)
{
ApprovalResults.UniqueForOs();
ApprovalTests.Approvals.Verify(new ImageWriter(f => WpfUtils.ScreenCapture(control, f)));
}
... ApprovalResults.UniqueForOs() 呼び出しをコメントアウトするライブラリの修正版を作成する以外に、承認ファイル名に OS 情報を含めることを無効にする方法はありますか?
これらのテストがさまざまなメジャー OS バージョンで失敗することは理解できますが、さまざまなエディションで失敗するべきではありません。標準の文字列ベリファイアが UniqueForOs スタイルの命名を強制していないことに気付きました。