@mkone112
Начинающий питонист.

Как избежать вызов setUp для каждого теста в отдельности?

У меня есть набор из тысяч тестов выглядящий примерно так:
class OneOfTheBaseTest:
    def setUp(self):
        # prepare db
        self.create_test_data_method_1()
        self.create_test_data_method_2()
        ...
        self.create_test_data_method_99()

class TestCase_1(..., OneOfTheBaseTest):
        def setUp(self):
            # do something
            super().setUp()
            # do something more
        def test_00_test_some_things(self):
            # tests
        ...
        def test_99_test_other_thigns(self):
            # tests

Т.е. есть базовый тест с кучей методов создания различных наборов моделей, который в setUp наполняет бд нужными начальными данными. Тесты наследуются от него и расширяют поведение setUp выполняя дополнительные специфичные настройки до или после super().setUp(). Проблема - начальных данных много, OneOfTheBaseTest.setUp выполняется долго и без особого смысла - он просто тысячи раз наполняет бд одинаковыми данными - в результате тесты проходят по полдня. В django существует setUpTestData призванный избавиться от этой проблемы, но предполагает полное переписывание всех методов и в данном случае это совсем не вариант. Как обойти эту проблему? Может существует какой-нибудь декоратор который заставляет setUp() вести себя как setUpTesData?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы