承認テストを使用しています。私の開発マシンでは、テスト結果が承認済みと異なる場合にTortoiseDiffDiffReporter
が起動することに満足しています。
[UseReporter(typeof (DiffReporter))]
public class MyApprovalTests
{ ... }
ただし、Teamcity で同じテストが実行されていて、結果が異なる場合、テストは次のエラーで失敗します。
System.Exception : Unable to launch: tortoisemerge.exe with arguments ...
Error Message: The system cannot find the file specified
---- System.ComponentModel.Win32Exception : The system cannot find the file
specified
明らかに tortoisemerge.exe が見つかりませんが、ビルド エージェントにインストールされていないため問題ありません。しかし、それがインストールされた場合はどうなりますか?次に、失敗するたびに tortoisemerge.exe の別のインスタンスが起動し、誰もそれを閉じません。最終的に、大量の tortoisemerge.exe インスタンスがサーバーを停止します :)
問題は、ローカル マシンで Tortoise Diff を実行し、ビルド サーバーでエラーを報告するだけのテストをどのように装飾する必要があるかということです。私は知って #IF DEBUG [UseReporter(typeof (DiffReporter))]
いますが、可能であれば別の解決策を希望します。