Как вы можете зафиксировать время отдельного модульного теста, включая стоимость настройки?
У меня есть тестовая база с процедурой настройки, которая занимает нетривиальное время. У меня есть несколько тестов, которые происходят из этой тестовой базы, и у меня есть декоратор, который теоретически должен распечатать время, необходимое для запуска каждого теста:
class TestBase(unittest.TestCase):
def setUp(self):
# some setup procedure that takes a long time
def timed_test(decorated_test):
def run_test(self, *kw, **kwargs):
start = time.time()
decorated_test(self, *kw, **kwargs)
end = time.time()
print "test_duration: %s (seconds)" % (end - start)
return run_test
class TestSomething(TestBase):
@timed_test
def test_something_useful(self):
# some test
Теперь, когда я запускаю эти тесты, оказывается, что я печатаю только время, которое потребовалось для запуска теста, не включая время настройки. Попутно может возникнуть связанный с этим вопрос: лучше ли иметь дело со временем вне вашей среды тестирования?