上下文
我们希望以接近实时的方式发布测试结果度量。因此,我们从pytest_runtest_makereport
挂钩发布度量。似乎在pytest_runtest_makereport
钩子中,xfailed或xpassed的测试被标记为跳过。
问题
有什么方法可以从pytest_runtest_makereport
挂钩中确定测试结果是xfailed还是xpassed?
我们可以通过terminalreporter
对象从pytest_terminal_summary
钩子中区分xfailed和xpassed测试与skippedterminalreporter.stats.get("xfailed", [])
在pytest_runtest_makereport
挂钩中,您可以使用
if call.excinfo and call.excinfo.typename == "XFailed":
以检测来自测试内的对CCD_ 7的调用。如果测试用@pytest.mark.xfail("...")
标记,则必须检测测试失败,然后查找标记(或者早些时候检查标记并记住它)。