Я использую Approval Tests . На моей машине разработки я доволен DiffReporter
, который запускает TortoiseDiff , когда результаты моего теста отличаются от одобренных :
[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))]
, но предпочел бы другое решение, если это возможно.