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