如何从pytest_runtest_makereport钩子中识别xfail测试



上下文

我们希望以接近实时的方式发布测试结果度量。因此,我们从pytest_runtest_makereport挂钩发布度量。似乎在pytest_runtest_makereport钩子中,xfailedxpassed的测试被标记为跳过

问题

有什么方法可以从pytest_runtest_makereport挂钩中确定测试结果是xfailed还是xpassed

我们可以通过terminalreporter对象从pytest_terminal_summary钩子中区分xfailedxpassed测试与skipped

terminalreporter.stats.get("xfailed", [])

pytest_runtest_makereport挂钩中,您可以使用

if call.excinfo and call.excinfo.typename == "XFailed":

以检测来自测试内的对CCD_ 7的调用。如果测试用@pytest.mark.xfail("...")标记,则必须检测测试失败,然后查找标记(或者早些时候检查标记并记住它)。

最新更新