@pytest.hookimpl(hookwrapper=True) def pytest_runtest_makereport(self): # 获取到用例执行之后的result对象 out = yield """ setup: call:测试执行中 teardown: wasxfail:标记失败用例 """ report = out.get_result() # 判断call阶段 if report.when == 'call': xfail = hasattr(report, 'wasxfail') # report.skipped:用例跳过 # report.failed:用例失败 if (report.skipped and xfail) or (report.failed and not xfail): with allure.step("添加失败截图... ...."): allure.attach(self.driver.get_screenshot_as_png(), "失败截图", allure.attachment_type.PNG) 这段代码用例失败不截图
时间: 2024-02-14 08:29:34 浏览: 223
Python基础教程之pytest参数化详解.pdf
这段代码是使用pytest框架的一个钩子函数,用于在测试用例执行完成后生成测试报告。其中,通过判断测试用例的执行阶段和执行结果来决定是否需要添加失败截图。
具体来说,当测试用例执行阶段为'call'时,即测试用例执行完毕后,会获取到用例执行结果的report对象。然后判断如果测试用例被跳过且被标记为失败(xfail),或者测试用例执行失败且未被标记为xfail,则会添加一个名为"失败截图"的附件到测试报告中。
这段代码可以在测试用例执行完成后捕获失败情况,并将失败截图作为附件添加到测试报告中,便于后续分析和定位问题。
如果你想要在用例失败时不添加截图,可以将以下代码注释或删除:
```
if (report.skipped and xfail) or (report.failed and not xfail):
with allure.step("添加失败截图... ...."):
allure.attach(self.driver.get_screenshot_as_png(), "失败截图", allure.attachment_type.PNG)
```
这样,无论用例是否失败,都不会添加失败截图到测试报告中。请注意,在修改代码前最好备份一下原始代码,以防止修改后出现意外情况。
阅读全文