Использование атрибутов MSTest - PullRequest
3 голосов
/ 19 июля 2011

Если я отмечу функцию очистки атрибутом [TestCleanup] в MSTEST, будет ли она выполняться ВСЕГДА, даже если в моем коде есть необработанное исключение?Есть ли что-нибудь, что заставило бы этот блок кода НЕ работать?Я настроил это и проверил, и он, кажется, всегда запускает очистку, но я хочу убедиться, что я что-то не пропускаю.

Ответы [ 2 ]

5 голосов
/ 19 июля 2011

Если ваш тест выдает исключение, будет запущен код [TestCleanup].

Единственное, что я обнаружил, что заставит TestCleanup не работать, это нарушение неуправляемого доступа. Это заканчивает тем, что сняло весь процесс MSTest. Но почти все на управляемой земле будет в порядке, и TestCleanup будет работать.

Очевидно, что все, что может прервать этот процесс, приведет к тому, что TestCleanup не запустится, как упоминалось в комментариях, например, потеря питания, сбой жесткого диска и т. Д.

0 голосов
/ 21 ноября 2014

TestCleanup не запускается, если TestInitialize выдает исключение.Это общая «особенность» фреймворков модульного тестирования.

...