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. может ли это иметь какое-то отношение к проблеме? Если да, то как я могу это исправить? Если нет, может ли кто-нибудь понять, что еще может произойти?
Спасибо за любые мысли.
Ответы
Ответ 1
Я думаю, что это связано с размещением моего тестового проекта. Первоначально я помещал проект тестирования nunit в отдельный каталог из своих DLL файлов. Я думал, что буду хранить все свои тестовые проекты в одном централизованном месте.
Я переместил свой тестовый проект в то же место, что и мои тестовые dll в проектах моей визуальной студии. После этого он работает правильно.
Я думаю, что это должно сделать теневую копию. Я прочитал в группе nunit в google, что .net-инфраструктура будет только теневым копировать сборки в базе приложения или в подкаталогах.
Это заставило меня попробовать создать проект тестирования nunit в моей базе приложений, и это, казалось, сработало.
Надеюсь, что это имеет смысл.
Спасибо
Ответ 2
Я также столкнулся с точной проблемой, однако ответ czuroski не работал у меня (хотя я думаю, что мы фактически говорим об одном и том же).
Что для меня работало, чтобы убедиться, что в NUnit я установил Project Path
и Project Base
, указывающие на ту же папку корневого приложения в Project
→ Edit
. Я повторно сохранил существующий проект Nunit в том же каталоге, что и мой VS sln файл.
Ответ 3
Еще одна вещь, которую нужно проверить, - убедиться, что Shadow Copy включен в Nunit → Tools → Settings → TestLoader → Дополнительно → Включить теневое копирование
Ответ 4
попробуйте это, Инструменты> Настройки> Загрузчик тестов> Изоляция сборки> Модель процесса по умолчанию> Выполнить тесты в отдельном процессе для каждой сборки.