When I run or debug my unit tests using Resharper Unit Test Runner, I get a dialog popping up that says "Unit Test Runner failed to run tests - Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information":
Now I have tried rebuilds, cleans, manually deleting folders, visual studio restarts, hardware restarts, looking in output/debug windows, and evening enabling R# "internal" mode so that I can see it's logs (written to %Temp%\\JetLogs as I understand), but none of that resolves it or gives any clues at all. I have tried "debugging" R# but again the dialog pops up before the debugger hits any exceptions.
How the hell am I supposed to resolve this? It's extremely annoying!
I'm using:
I ended up diagnosing this with a fairly simple method:
I converted my unit test assembly from a class library into a console application and added a Main entry point (shown below). Within there I iterate all of the assemblies types which I hoped would cause all types & dependent assemblies to be loaded, which would reveal any load exceptions. And yes it worked. It quickly threw a System.Reflection.ReflectionTypeLoadException
which is the canonical source of the error message "Unable to load one or more...". In the debugger I could examine the LoaderExceptions
property which told me what the underlying problem was.
public class Program
{
public static void Main(string[] args)
{
var types = Assembly.GetExecutingAssembly().GetTypes();
}
}
Schneider's answer will work just fine but if there are more lazy people out there you can check the LoaderExceptions
in PowerShell a bit faster.
[Reflection.Assembly]::LoadFile('<path to your assembly>') | % {$_.GetTypes()}
$Error[0].Exception.InnerException.LoaderExceptions
我通过关闭Visual Studio,删除了无法加载的程序集的.vs
和obj
文件夹,然后重新打开Visual Studio并再次运行测试,在Visual Studio 2017中解决了同样的问题。
I experienced the same problem with visual studio Express 2017. Tried Schneider's approach but no exception was thrown. Eventually, I created a new project and moved all files of the project that had this problem to the new project and problem solved.
我有一个类似的问题,最后通过安装这个nuget包(单元测试mvc核心项目)得到它的工作Microsoft.NET.Test.Sdk
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.