Python Glossary English

все 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Сообщить о неточности