How to fix Could not load file or assembly 'nunit.engine, Version=3.7.0.0

浪尽此生 提交于 2019-12-03 09:06:21

问题


I have a webappliction with a separate test-project using NUnit to run unittests. When my test-project is trying to discover tests I run into the following 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.

This is of course a very common error, but I can't find a reference to this particular assembly anywhere or what other dependency is actually causing the issue. Another thing is that I currently have 3.9.0 installed of NUnit instead of the mentioned 3.7.0. I have already tried cleaning and rebuilding the solution and restored all Nuget packages and clearing the obj directory didn't help either.


回答1:


This is happening quite frequently with the latest versions of Visual Studio. We are not sure why, but the cause is an incomplete copy of the test adapter in the Visual Studio cache. The fix is to delete the cached copy and restart Visual Studio.

The folder you want to delete is C:\Users\username\AppData\Local\Temp\VisualStudioTestExplorerExtensions\NUnit3TestAdapter.3.x.x depending on your username and the version.

See https://github.com/nunit/nunit3-vs-adapter/issues/261 and http://hermit.no/how-to-resolve-cases-of-visual-studio-no-tests-appearing/




回答2:


Seems in project file you have mentioned reference of 3.7.0 as GAC, and that dll is not available in GAC which is hopefully causing the failure.




回答3:


In my case it was

An exception occurred while invoking executor 'executor://nunit3testexecutor/': Could not load file or assembly 'nunit.engine, Version=3.9.0.0

And the problem is: in my test project I have an import of 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')" />

And in another project I have NUnit.Engine.3.10.0 referenced. but NUnit3TestAdapter.3.13.0 has Nunit.Engine.3.9.0 in the package.

\packages\NUnit3TestAdapter.3.13.0\build\net35

So, the solution was to downgrade Nunit.Engine in another project to 3.9 version.



来源:https://stackoverflow.com/questions/48526149/how-to-fix-could-not-load-file-or-assembly-nunit-engine-version-3-7-0-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!