1

まず、素晴らしい図書館!

コンパイルした場合、アセンブリがコンパイルされた場所で *.approved.txt をまだ探していることを確認したら、アセンブリを移動します。私の場合、これはもう存在しません。

ビルドとテストを別々のタスクで行う Teamcity で、この問題に直面しています。そのため、ビルド ステップは c:\BuildAgent\SomeGuid でビルドされます... ビルドからアーティファクトを取得し、c:\BuildAgent\SomeOtherGuid でテストを実行します... Approvals.Verify がまだ "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)

実行可能ファイルの相対ディレクトリを参照するように微調整する方法についてのアイデア。

4

1 に答える 1

1

カスタムネーマーを作成する必要があります。とても簡単です。これらのファイルを見てください。

http://bit.ly/IApprovalNamer

http://bit.ly/XUnitStackTraceParser

http://bit.ly/AttributeStackTraceParser

これを行ったら、使用する名前を登録する必要があります。これを行うには、単に呼び出します。

Approvals.RegisterDefaultNamerCreation(()=> new MyCustomNamer());
于 2012-10-10T13:23:44.790 に答える