如何在pytest中访问整体运行时?

时间:2019-05-23 08:36:25

标签: python testing pytest

运行测试后,pytest中有一个概述:

============= 7在1.11秒内通过============

我喜欢在pytest末尾访问时间(此处为1.11)。

我已经在这里找到一些有用的信息:

How can I access the overall test result of a pytest test run during runtime?

但与总体测试运行时间不匹配。

我尝试使用def pytest_sessionfinish(session,exitstatus)

我没有找到那里的总时长。

该值似乎在RunResult对象内部。 https://docs.pytest.org/en/latest/_modules/_pytest/pytester.html#RunResult

如何访问?

1 个答案:

答案 0 :(得分:2)

您可以在TerminalReporter插件实例中访问执行开始时间戳,然后自己计算执行时间(这也是pytest本身所做的事情)。示例:

# conftest.py

import time

def pytest_sessionfinish(session, exitstatus):
    reporter = session.config.pluginmanager.get_plugin('terminalreporter')
    duration = time.time() - terminalreporter._sessionstarttime
    print('duration:', duration, 'seconds')