Cache de resultado de setUp () usando Python unittest
Atualmente, tenho um unittest.TestCase que se parece com ..
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..
Isso funciona bem, mas oTrailers()
a chamada demora cerca de 2 segundos para ser executada.setUp()
é chamado antes de cada teste ser executado, os testes agora levam quase 10 segundos para serem executados (com apenas 3 funções de teste)
Qual é a maneira correta de armazenar em cache oself.all_trailers
variável entre testes?
Removendo a função setUp e executando ..
class test_appletrailer(unittest.TestCase):
all_trailers = Trailers(res = "720", verbose = True)
..works, mas afirma que "Ran 3 testes em 0.000s" está incorreto. A única outra maneira que eu consegui pensar é ter uma variável global cache_trailers (que funciona corretamente, mas é horrível):
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