Я знаю, что в идеале модульные тесты должны быть автономными и имитировать базы данных и другие внешние зависимости.
Однако по разным причинам у нас также есть несколько автоматических тестов mstest, которым необходимо изменить среду (например, изменить значения в центральной базе данных разработки/тестирования), а затем сбросить эти изменения в предложенииfinally или процедуре [TestCleanup].
Как я уже сказал, это явно не идеально и вызывает множество других проблем (не работает с распараллеливанием и т. д.). Одна особенно неприятная проблема заключается в том, что остановка модульного теста (с помощью красной кнопки остановки в обозревателе тестов Visual Studio), по-видимому, убивает процесс выполнения модульного теста и не запускает предложенияfinally или методы [TestCleanup].
Есть ли способ сказать Visual Studio "изящно" остановить выполнение модульного теста? Например, остановив выполнение текущего теста или внедрив исключение ThreadAbortException в текущий тест?