我有一个web应用程序,它有一个单独的测试项目,使用NUnit来运行单元测试。当我的测试项目试图发现测试时,我遇到了以下异常:
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.
字符串
这当然是一个非常常见的错误,但我找不到任何地方引用到这个特定的程序集或其他依赖项实际上导致了这个问题。另一件事是,我目前安装的是NUnit的3.9.0
,而不是提到的3.7.0
。我已经尝试过清理和重建解决方案,恢复了所有的Nuget包,清除obj
目录也没有帮助。
5条答案
按热度按时间dojqjjoe1#
最新版本的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/
jecbmhm32#
在我的情况下,
调用执行器“executor://nunit 3 testexecutor/”时发生异常:无法加载文件或程序集“nunit.engine,Version=3.9.0.0”
问题是:在我的测试项目中,我导入了NUnit3TestAdapter.3.13.0
字符串
在另一个项目中,我引用了NUnit.Engine.3.10.0。但是NUnit3TestAdapter.3.13.0在包中有Nunit.Engine.3.9.0。
型
因此,解决方案是将另一个项目中的Nunit.Engine降级到3.9版本。
ergxz8rk3#
我有一个稍微不同的修复是,我没有在我的Temp目录中的文件夹。我不得不使用NuGet降级nUnit的版本,构建和重新编译,然后再更新到最新版本。
cpjpxq1n4#
我通过将以下所有NuGet包更新到最新的稳定版本来修复类似的问题:
字符串
最初我没有考虑
Microsoft.NET.Test.Sdk
,而是得到了类似于调用执行器“executor://nunit 3 testexecutor/”时发生异常:未找到方法:“NUnit.Engine.ITestEngine NUnit.Engine.TestEngineActivator. Exception(”)“。
或
未能从程序集“System.Web,Version=4.0.0.0”加载类型“System.Web.UI. ICallbackEventNode”
fivyi3re5#
似乎在项目文件中,您提到了3.7.0作为GAC的引用,并且该dll在GAC中不可用,这可能会导致失败。