Подтвердить что ты не робот

Nunit lock dll

Я использую nunit с visual studio 2010 на 64-битном компьютере Windows 7.

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Спасибо

Ответ 2

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

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

Ответ 3

Еще одна вещь, которую нужно проверить, - убедиться, что Shadow Copy включен в Nunit → Tools → Settings → TestLoader → Дополнительно → Включить теневое копирование

Ответ 4

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