В настоящее время у меня есть 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