Как диагностировать Resharper Unit Test Runner "Невозможно загрузить одну или несколько запрошенных типов"
Когда я запускаю или отлаживаю свои модульные тесты с помощью Resharper Unit Test Runner, появляется диалоговое окно, в котором говорится: "Unit Test Runner не смог запустить тесты - не удалось загрузить один или несколько запрошенных типов. Извлеките LoaderExceptions свойство для получения дополнительной информации":
![введите описание изображения здесь]()
Теперь я попробовал перестроить, очистил, вручную удалил папки, перезапуски на Visual Studio, перезагрузил оборудование, посмотрел в окна вывода/отладки и вечером включил R # "внутренний" режим, чтобы я мог видеть его журналы (записанные в% Temp %\JetLogs, как я понимаю), но ничто из этого не разрешает или вообще не дает никаких подсказок. Я пробовал "отлаживать" R #, но снова появляется диалоговое окно, прежде чем отладчик ударит по любым исключениям.
Как, черт возьми, я должен это разрешить? Это очень раздражает!
Я использую:
- R # 2016.1.2
- NUnit 3.2.1
- Обновление Visual Studio 2015 2 (14.0.25123)
Ответы
Ответ 1
Я закончил диагностировать это с помощью довольно простого метода:
Я преобразовал сборку unit test из библиотеки классов в консольное приложение и добавил главную точку входа (показано ниже). Внутри я повторяю все типы сборок, которые, как я надеялся, приведут к загрузке всех типов и зависимых сборок, что позволит выявить любые исключения нагрузки. И да, это сработало. Он быстро выбросил System.Reflection.ReflectionTypeLoadException
, который является каноническим источником сообщения об ошибке "Невозможно загрузить один или несколько...". В отладчике я мог изучить свойство LoaderExceptions
, в котором говорилось, что основная проблема была.
public class Program
{
public static void Main(string[] args)
{
var types = Assembly.GetExecutingAssembly().GetTypes();
}
}
Ответ 2
Ответ Schneider будет работать нормально, но если есть более ленивые люди, вы можете проверить LoaderExceptions
в PowerShell немного быстрее.
[Reflection.Assembly]::LoadFile('<path to your assembly>') | % {$_.GetTypes()}
$Error[0].Exception.InnerException.LoaderExceptions