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