ApprovalTests.... Перемещение сборок после компиляции
Прежде всего, отличная библиотека!
Если я компилирую, то перемещаю сборки, когда проверяю, что он все еще ищет *.approved.txt в месте, в котором он был скомпилирован, который в моем случае больше не существует.
Я сталкиваюсь с этой проблемой в Teamcity, где мы создаем и тестируем отдельные задачи. Таким образом, шаг сборки будет построен в c:\BuildAgent\SomeGuid... Я беру артефакты из сборки и запускаю тесты в c:\BuildAgent\SomeOtherGuid... Это не выполняется как утверждения. Проверка по-прежнему ссылается на "SomeGuid"
[Fact]
public void ShouldCreateCorrectOutgoingFiles() {
var textToVerfiy = "Here's some text To Verify";
Approvals.Verify(textToVerfiy);
}
...
: System.IO.DirectoryNotFoundException : Could not find a part of the path 'r:\w\254cbbd5ec9b56bc\project\ScenarioTests\myTests'.
Stack Trace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
at System.IO.Directory.CreateDirectory(String path)
at ApprovalTests.ApprovalTextWriter.WriteReceivedFile(String received)
at ApprovalTests.Approvers.FileApprover.Approve()
at ApprovalTests.Core.Approvals.Verify(IApprovalApprover approver, IApprovalFailureReporter reporter)
at ApprovalTests.Approvals.Verify(IApprovalWriter writer, IApprovalNamer namer, IApprovalFailureReporter reporter)
at ApprovalTests.Approvals.Verify(IApprovalWriter writer)
at ApprovalTests.Approvals.Verify(String text)
Любые идеи о том, как я могу настроить его, чтобы посмотреть в относительной директории к исполняемому файлу.
1 ответ
Вы должны написать собственное имя. Это довольно легко. Посмотрите на эти файлы.
http://bit.ly/XUnitStackTraceParser
http://bit.ly/AttributeStackTraceParser
Как только вы это сделаете, вам придется зарегистрировать имя пользователя для использования, для этого просто позвоните.
Approvals.RegisterDefaultNamerCreation(()=> new MyCustomNamer());