我正在使用pytest
,并且希望以一种优美的方式组合两个插件,pytest-html
和pytest-timeout
。我在Windows上运行,因此必须使用从pytest-timeout
超时的线程方法,这将导致所有测试停止。我希望在这种情况下从pytest-html
中生成一个html,但是由于中断引起的层次结构问题,无法确定其合理性。
更新,到目前为止的进展:
我在conftest.py
中添加了一个函数,该函数在每个测试用例之前手动生成html,并带有当时存在的会话数据。这是一种在超时之前生成html的round回方法,而不是仅在测试结束时生成,只是因为html在整个过程中都在不断地生成。
@pytest.fixture(scope='function', autouse=True)
def test_blackbox(request):
session = request.node
html = request.config._html
report_content = html._generate_report(session)
html._save_report(report_content)
我可以向timeout_timer
的{{1}}方法添加类似的代码,该方法是在计时器线程用完时调用的函数,但我想避免直接编辑插件本身。完成原始任务后,我会回答。