монтировка блокировки dll - PullRequest
15 голосов
/ 03 марта 2011

Я использую nunit с visual studio 2010 на 64-битном ПК с windows 7.

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

Ошибка 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 ]

18 голосов
/ 29 марта 2011

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

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

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

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

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

Спасибо

8 голосов
/ 02 августа 2011

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

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

2 голосов
/ 13 марта 2012

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

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