ユニットテストを実行するためにNUnitを使用する個別のテストプロジェクトでwebapplictionがあります。私のテストプロジェクトがテストを発見しようとすると、次の例外が発生します。
An exception occurred while test discoverer 'NUnit3TestDiscoverer' was loading tests. Exception: Could not load file or Assembly 'nunit.engine, Version=3.7.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb' or one of its dependencies. The system cannot find the file specified.
もちろん、これは非常に一般的なエラーですが、この特定のアセンブリへの参照や、実際に問題を引き起こしている他の依存関係は見つかりません。別のことは、私は現在、言及された3.9.0
の代わりにNUnitの3.7.0
がインストールされていることです。私はすでにソリューションのクリーニングと再構築を試み、すべてのNugetパッケージを復元しましたが、obj
ディレクトリをクリアしても解決しませんでした。
これは、Visual Studioの最新バージョンで非常に頻繁に発生しています。理由はわかりませんが、原因はVisual Studioキャッシュ内のテストアダプターの不完全なコピーです。修正は、キャッシュされたコピーを削除し、Visual Studioを再起動することです。
削除するフォルダーはC:\Users\username\AppData\Local\Temp\VisualStudioTestExplorerExtensions\NUnit3TestAdapter.3.x.x
ユーザー名とバージョンに応じて。
https://github.com/nunit/nunit3-vs-adapter/issues/261 および http://hermit.no/how-to-resolve-cases-of-を参照してくださいvisual-studio-no-tests-appearing /
3.7.0のリファレンスをGACとして言及したプロジェクトファイルにあるようで、そのdllはGACで使用できないため、失敗の原因となる可能性があります。
私の場合は
Executor 'executor:// nunit3testexecutor /'の呼び出し中に例外が発生しました:ファイルまたはアセンブリ 'nunit.engine、Version = 3.9.0.0をロードできませんでした
そして問題は:私のテストプロジェクトでは、NUnit3TestAdapter.3.13.0のインポートがあります。
<Import Project="..\..\..\packages\NUnit3TestAdapter.3.13.0\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\..\..\packages\NUnit3TestAdapter.3.13.0\build\net35\NUnit3TestAdapter.props')" />
また、別のプロジェクトでは、NUnit.Engine.3.10.0を参照しています。ただし、NUnit3TestAdapter.3.13.0のパッケージにはNunit.Engine.3.9.0が含まれています。
\packages\NUnit3TestAdapter.3.13.0\build\net35
そのため、別のプロジェクトのNunit.Engineを3.9バージョンにダウングレードすることが解決策でした。