import contextlib
import time
@contextlib.contextmanager
def time_print(task_name):
t = time.time()
try:
yield
finally:
print task_name, "took", time.time() - t, "seconds."
def doproc():
x=1+1
with time_print("processes"):
[doproc() for _ in range(500)]
# processes took 15.236166954 seconds.
Run Code Online (Sandbox Code Playgroud)
什么时候doproc在使用这个装饰器时被执行?
我想在所有测试结束时获得所有测试的列表(例如以 py.test TestReport 的形式)。
我知道这pytest_runtest_makereport会做类似的事情,但仅限于一次测试。但是我想conftest.py在py.test应用程序终止之前实现一个钩子或其他东西来处理整个测试列表。
有没有办法做到这一点?