Как использовать тесты утверждения WinMergeReporter с ncrunch
Некоторое время я использовал тесты утверждения с WinMergeReporter, и он хорошо работает со стандартным исполняемым файлом NUnit.
Я пробую NCrunch и утверждение. Проверка не удалась (как и ожидалось) для нового утверждения.
Тем не менее, WinMerge не запускается.
Я получаю провал
ApprovalTests.Core.Exceptions.ApprovalMissingException: сбой утверждения: файл подтверждения "...\mytest.approved.txt" не найден. at ApprovalTests.Approvers.FileApprover.Fail()
Я могу запустить тот же код в NUnit Runner и WinMerge запускается.
В чем секрет NCrunch для запуска WinMergeReporter?
1 ответ
Это на самом деле задумано, так как всплывающее окно winmerge каждый раз, когда NCrunch терпит неудачу, очень быстро раздражает. Тем более, что это ворует фокус.
Однако, вот почему это работает и как это изменить, если вы этого хотите (вы всегда можете изменить его обратно)
Сертификационные тесты имеют систему MultiReporter, в которой используются фронтальные загрузки из сборки для реализации шаблона GangOfFour "Цепочка ответственности". Это будет действовать, как будто есть
[assembly: FrontLoadedReporter(typeof(NCrunchReporter))]
Это на самом деле не должно быть там. Тесты на одобрение примут его как значение по умолчанию, если на самом деле ничего не присутствует.
Так что, если вы хотите отключить его, вы можете просто сделать
[assembly: FrontLoadedReporter(typeof(AlwaysFaillingReporter))]
За исключением того, что репортер не существует (хотя было бы тривиально сделать один:-) Так что вы можете просто захотеть сделать
[assembly: FrontLoadedReporter(typeof(WinMergeReporter))]
Удачного тестирования!