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