все Python 3unittestфункция
unittest.TestCase.tearDown()
фикстуры
Запускается после КАЖДОГО теста — освобождает то, что занял setUp. Вызывается даже если тест упал, но только если сам setUp отработал успешно.
Синтаксис
def tearDown(self): ... # после каждого теста
Слабое место tearDown — он один на все ресурсы: если первая же строка освобождения бросит исключение, остальные не выполнятся и лишний файл или соединение останутся висеть. Регистрировать self.addCleanup(...) сразу после захвата каждого ресурса надёжнее: такие функции вызываются в обратном порядке, падение одной не отменяет остальные, и они срабатывают даже когда setUp не дошёл до конца. Исключение внутри самого tearDown помечает тест как error, даже если все проверки прошли.
Примеры
import unittest
class DBTest(unittest.TestCase):
def setUp(self):
self.data = {'key': 'val'}
def tearDown(self):
self.data.clear() # очистка
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности