Вот сценарий:
- Изменить мой код:
- Изменить мой модульный тест для этого кода
- С курсором внутри класса / метода модульного теста,Вызвать команду VS2008 «Выполнить тесты в текущем контексте»
- Окно «Вывод» в Visual Studio указывает, что код dll и dll теста оба успешно построены (в таком порядке)
Проблема, однако, в том, что в модульном тесте не используется последняя версия библиотеки DLL, которую он только что построил.Вместо этого он использует ранее созданную dll (в которой нет обновленного кода), поэтому тест не пройден.
При добавлении нового метода это приводит к MethodNotImplementedException
, а также при добавлениикласс, это приводит к TypeLoadException
, потому что модульный тест думает, что новый код есть, а его нет !.Если я просто обновляю существующий метод, то тест просто не пройден из-за неверных результатов.
Я могу «обойти» проблему, выполнив это
- Изменить мой код:
- Изменить мой модульный тест для этого кода
- Вызвать команду VS2008 'Build Solution'
- Поместив курсор внутри класса / метода модульного теста, вызватьКоманда VS2008 «Выполнить тесты в текущем контексте»
Проблема в том, что выполнение полного решения по сборке (даже если ничего не изменилось) занимает более 30 секунд, так как у меня около 50 проектов на C # и VS2008не достаточно умен, чтобы понять, что нужно рассмотреть только 2 из них.Необходимость подождать 30 секунд, чтобы просто изменить 1 строку кода и перезапустить модульный тест, ужасна.
Могу ли я что-нибудь сделать, чтобы это исправить?Ни один из моих кодов не находится в GAC или что-нибудь забавное в этом роде, это просто обычные старые библиотеки DLL (в сравнении с .NET 3.5SP1 на машине с win7 / 64-битной версией)
Пожалуйста, помогите!