Монтировка блокировки dll

Я использовал nunit с Visual Studio 2010 на 64-битном ПК с Windows 7.

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

Ошибка 1 Не удалось скопировать файл "obj\Debug\myProject.Tests.dll" в "bin\Debug\myProject.Tests.dll". Процесс не может получить доступ к файлу "bin \ Debug \ myProject.Tests.dll", так как он используется другим процессом. myProject.Tests

Я использовал Process Explorer, чтобы убедиться, что это nunit-agent.exe, который блокирует DLL.

С помощью инструментов> тестовых сборок я заметил, что nunit.exe работает под версией clr Net 2.0, а nunit-agent.exe работает под версией clr Net 4.0. это может иметь какое-то отношение к проблеме? Если так, как я могу это исправить? Если нет, у кого-нибудь есть идеи, что еще может происходить?

Спасибо за любые мысли.

3 ответа

Решение

Я думаю, что это связано с размещением моего тестового проекта. Первоначально я помещал тестовый проект nunit в отдельный каталог из моих dll-файлов. Я думал, что буду хранить все свои тестовые проекты в одном централизованном месте.

Я переместил мой тестовый проект в то же место, где находились мои тестовые библиотеки в проектах Visual Studio. После этого, похоже, работает правильно.

Я думаю, что это должно сделать теневую копию. Я прочитал в группе nunit на Google, что.net Framework будет выполнять только теневые копии сборок в базе приложения или его подкаталогах.

Это заставило меня попробовать создать тестовый проект nunit в моей базе приложений, и это, похоже, сработало.

Надеюсь, что это имеет смысл.

Спасибо

Я также столкнулся с точной проблемой, однако ответ Чуроски не сработал для меня (хотя я думаю, что мы на самом деле говорим об одном и том же).

Что мне помогло, так это то, что в NUnit я установил Project Path а также Project Base указывали на ту же корневую папку приложения под Project -> Edit, Я повторно сохранил свой существующий проект Nunit в тот же каталог, что и мой файл VS sln.

Еще одна вещь, которую нужно проверить, это убедиться, что Shadow Copy включен в Nunit -> Инструменты -> Настройки -> TestLoader -> Дополнительно -> Включить Shadow Copy.

Попробуйте это, Инструменты> Настройки> Загрузчик тестов> Изоляция сборки> Модель процесса по умолчанию> Запускать тесты в отдельном процессе для каждой сборки.

Другие вопросы по тегам