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