简体   繁体   中英

How to diagnose Resharper Unit Test Runner “Unable to load one or more of the requested types” error

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:

  • R# 2016.1.2
  • NUnit 3.2.1
  • Visual Studio 2015 Update 2 (14.0.25123)

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,删除了无法加载的程序集的.vsobj文件夹,然后重新打开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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM