Nunit не пуска DLL, използван в тест / не може да изтрие при разглобяване

Имам приложение, което трябва да взаимодейства с неуправляван и честно казано бъгав DLL.

Компенсирах това, като накарах приложението си да проверява за всякакви условия за грешка при стартиране на DLL, неща като изтичане на времето, в случай че DLL влезе в безкраен цикъл.

Опитвам се да тествам тази работа в моето приложение и затова съзнателно съм кодирал DLL, който нарочно влиза в безкраен цикъл.

В моя модулен тест искам да преименувам оригиналния DLL, да копирам в моя „счупен“ DLL, да стартирам теста, да видя работата на кода за изчакване, след това да премахна счупения DLL и да заменя оригиналния DLL.

В моя метод TearDown обаче не мога да изтрия DLL, получавайки UnauthorizedAccessException. Предполагам, че това е така, защото nUnit все още има DLL "отворен" по някакъв начин.

Как мога да накарам nUnit да освободи DLL?


person Paul Smith    schedule 08.12.2009    source източник


Отговори (1)


Е, заобиколих го, като разделих проблемните тестове на отделни сборки. Сега имам 3 тестови комплекта, 1 съдържащ по-голямата част от тестовете и 1 съдържащ всеки от тестовете, с които имах проблеми. И двата теста включват SetUp и TearDown код за премахване на всякакви бъркотии, които може да са оставени от другия тест.

И така, все още не знам как да пусна DLL, но като преместя тестовете в отделни сборки, вече нямам нужда от това.

person Paul Smith    schedule 08.12.2009