pytest pytest_runtest_teardown
时间: 2023-12-16 17:28:07 浏览: 176
根据提供的引用内容,没有找到关于pytest_runtest_teardown的信息。但是可以根据引用[1]中的代码和注释推断出pytest_runtest_teardown的作用是在测试用例执行完毕后进行一些操作,类似于pytest_runtest_makereport方法中的teardown操作。如果需要了解更多关于pytest的内容,可以参考pytest官方文档。
相关问题
pytest 不执行teardown_pytest文档33Hooks函数获取用例执行结果(pytest_runtest_makereport)...
对于 pytest 不执行 teardown 函数的问题,可能是因为测试用例存在异常或者中断等情况导致 pytest 遇到了错误,从而直接退出了,而没有执行后续的 teardown 函数。你可以查看 pytest 的输出日志或者控制台信息,看看是否有相关的错误提示。
至于获取用例执行结果,可以通过 pytest 的 Hooks 函数 `pytest_runtest_makereport` 来实现。这个函数会在每个测试用例执行完成后被调用,并且会传入一个 `report` 对象,包含了测试用例的执行结果信息。你可以在这个函数中处理 `report` 对象,获取相应的结果信息。具体可以参考 pytest 官方文档中的相关介绍:https://docs.pytest.org/en/latest/example/simple.html#making-test-result-information-available-in-fixtures-using-request-addfinalizer。
@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) 这段代码用例失败不截图
这段代码是使用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)
```
这样,无论用例是否失败,都不会添加失败截图到测试报告中。请注意,在修改代码前最好备份一下原始代码,以防止修改后出现意外情况。
阅读全文