如何修复无法加载文件或程序集’nunit.engine,Version = 3.7.0.0

我有一个使用NUnit运行unit testing的单独测试项目的webappliction。 当我的测试项目试图发现测试时,我遇到以下exception:

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.xx具体取决于您的用户名和版本。

请参阅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的引用,并且该gll在GAC中不可用,这有望导致失败。