以前は、Visual Studio 2010 しかなかったとき、単体テストは問題なく実行されていました。
基本的に、テストは UnitTests.dll と UnitTests.dll.config の 2 つのファイルで構成されています。UniTests.dll.config には、カスタム プローブの privatePath がありました (たとえば、Public;Extensions;Lib)。
実行するために、私は次のワークフローに従っていました。2. NUnit GUI を開きます。3. テストでは、テスト対象のアプリケーションから dll をロードする必要があるため、ShadowCopy を無効にしてテストを実行します。
これはうまくいきました!
Visual Studio 2012 をインストールした後、テストが実行されなくなりました。その後、回避策を見つけましたが、それは私のソリューションでは使用したくないものです。
テストを実行するには、次のワークフローに従う必要があります。
- 両方のファイル (つまり、UnitTests.dll と .config) を、テスト対象のアプリケーションがあるフォルダーにコピーします。
- すべての NUnit インストール ファイル (つまり、nunit-agent、nunit-console など) を、テスト対象のアプリケーションが配置されているフォルダーにコピーします。
- UnitTests.dll.config からの同じパスを含めるために、nunit-agent.dll.config からのプローブ privatePath を変更します。
- アプリケーションの test フォルダーの下にある NUnit gui を開きます。
- ShadowCopy を無効にしてテストを実行します。
単体テストを実行するには、手順 2 と 3 を含める必要があることに注意してください。どういうわけか、nunit-agent.dll が、テスト アセンブリの構成ファイルからプローブ用の privatePath を読み込んでいないと思います。
なぜこれが起こっているのか誰にも分かりますか?nunit-agent.dll.config を変更して nunit インストール ファイルをコピーする必要がない回避策はありますか?
前もって感謝します。