Проект модульного теста не может найти тестируемую сборку (или зависимости) - PullRequest
11 голосов
/ 03 ноября 2011

Когда я пытаюсь запустить свой проект модульного теста, я получаю следующую ошибку:

Не удалось загрузить файл или сборку 'ASSEMBLY_NAME, версия = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null'или одна из его зависимостей.

Системе не удается найти указанный файл.

Тестируемая сборка находится в том же решении и в каждом целевом проекте .NET 4.0 framework.Некоторое время это работало, но сегодня я снова получил эту ошибку.Я не могу понять, что не так, потому что сообщение об ошибке не говорит мне достаточно.(например; WHICH-файл не может быть найден ..)

Я пытался добавить новый тестовый проект, но он работал некоторое время, прежде чем он дал мне то же самое сообщение об ошибке.

Кто-нибудь может указать мне правильное направление?

Редактировать: В журнале сборки диагностики появляется следующая ошибка:

C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\TeamTest\
Microsoft.TeamTest.targets(14,5): 
error : Could not load file or assembly 'ASSEMBLY_NAME, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
The system cannot find the file specified.

Done executing task "BuildShadowTask" -- FAILED. (TaskId:671)

Done building target "ResolveTestReferences" in 
      project "ASSEMBLY_NAME.Tests.vbproj" -- FAILED.: (TargetId:985)

Ответы [ 10 ]

7 голосов
/ 04 ноября 2011

После проверки некоторых дополнительных результатов поиска я столкнулся с этим вопросом здесь, в SA Закрытый метод доступа для метода не найден .

После того как я удалил файл * .accessor, мой тестовый проект перестал жаловаться и успешно скомпилирован.

Всем спасибо за помощь!

6 голосов
/ 03 ноября 2011

Проверьте Build->Configuration Manager... меню. Все проекты должны иметь одинаковую платформу и проверенный столбец Build.

Также вы можете взглянуть на вывод сборки (окно Output), где обычно более четко указано, какой файл не найден.

3 голосов
/ 09 февраля 2016

Я пробовал все выше безрезультатно.Наконец, в csproj я изменил

<Private>False</Private>

на

<Private>True</Private>

по ссылкам и все тесты пройдены.

3 голосов
/ 03 ноября 2011

Существует общая ошибка при выполнении модульных тестов: папка выполнения.

Вы уверены, что ваш модульный тест выполняется в правильной папке?Не в известной папке obj ?

В папке obj , копируются только сгенерированные сборки, а не зависимости - даже локальная копия -.Поэтому, если ваш тест запущен из этой папки, все зависимости будут отсутствовать.

1 голос
/ 03 ноября 2018

Убедитесь, что Зависимости> Изменить ссылки> Проект (ваш проект) выбраны, а не .net Сборка проекта

0 голосов
/ 31 января 2019

У меня была эта ошибка, и я исправил ее с помощью ОБНОВЛЕНИЕ ПАКЕТОВ NUGET .

Это сработало, потому что один из моих проектов в решении ссылался на очень старую скомпилированную версию другого проекта, которая содержалась в том же решении.

Когда я использовал тесты «Выполнить все» в Visual Studio, я предполагаю, что он копирует «текущие» выходные данные проектов, а затем впоследствии dll-зависимость пакета, которая перезаписывает оригиналы, если они имеют одинаковые имена. (полное предположение там)

Когда я проверил сообщение об ошибке, я увидел, что мой проект ссылался на «версию 0.0.10» зависимости, но мое решение содержало проект вплоть до «версии 0.0.30», так что существенная разница.

0 голосов
/ 29 января 2016

Другая возможная причина - это то, что имя сборки проекта модульного тестирования использует то же имя, что и тестируемая сборка. (т.е. убедитесь, что ваше имя сборки модульного теста уникально).

0 голосов
/ 19 февраля 2013

Ссылки-> Отметить dll-> Правый клик-> Свойства-> Копировать локальный, установленный в true

0 голосов
/ 15 августа 2012

У меня была та же проблема, и я обнаружил, что копирование DLL в GAC решило проблему. Хотя я до сих пор не понимаю, почему он не использует ссылочные сборки проектов.

0 голосов
/ 03 ноября 2011

Возможно, включение регистрации загрузки сборки может дать вам подсказку о том, почему ваша сборка не может быть загружена.

http://msdn.microsoft.com/en-us/library/e74a18c4.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...