Кэширование результата setUp () с использованием Python unittest

В настоящее время у меня есть unittest.TestCase, который выглядит как ..

class test_appletrailer(unittest.TestCase):
    def setup(self):
        self.all_trailers = Trailers(res = "720", verbose = True)

    def test_has_trailers(self):
        self.failUnless(len(self.all_trailers) > 1)

    # ..more tests..

Это прекрасно работает, ноTrailers() вызов занимает около 2 секунд, чтобы запустить .. Учитывая, чтоsetUp() вызывается перед каждым тестом, тесты теперь занимают почти 10 секунд (только с 3 функциями теста)

Как правильно кешироватьself.all_trailers переменная между тестами?

Удаление функции setUp и выполнение ..

class test_appletrailer(unittest.TestCase):
    all_trailers = Trailers(res = "720", verbose = True)

.. работает, но затем он утверждает, что "Выполнил 3 теста за 0.000 с", что неверно. Единственный другой способ, о котором я мог подумать, это иметь глобальную переменную cache_trailers (которая работает правильно, но довольно ужасно):

cache_trailers = None
class test_appletrailer(unittest.TestCase):
    def setUp(self):
        global cache_trailers
        if cache_trailers is None:
            cache_trailers = self.all_trailers = all_trailers = Trailers(res = "720", verbose = True)
        else:
            self.all_trailers = cache_trailers

Ответы на вопрос(5)

Ваш ответ на вопрос