在pytest中,可以使用request
对象来获取teardown_module()
中某个模块的所有测试结果。request
对象提供了访问测试上下文的方法和属性。
首先,在teardown_module()
函数中,可以通过request.node
属性获取当前模块的Node
对象。然后,可以使用request.node.own_markers
属性获取当前模块的所有标记。
接下来,可以使用request.config.hook.pytest_runtest_protocol
方法来获取当前模块的测试结果。该方法返回一个生成器,可以迭代获取每个测试项的结果。
下面是一个示例代码:
import pytest
def teardown_module(module):
request = module.request
markers = request.node.own_markers
for marker in markers:
if marker.name == 'pytestrail':
# 获取pytestrail标记的测试结果
results = request.config.hook.pytest_runtest_protocol(item=request.node)
for result in results:
if result.when == 'call':
if result.passed:
print(f"测试用例 {result.nodeid} 通过")
else:
print(f"测试用例 {result.nodeid} 失败")
@pytest.mark.pytestrail(case_id=123)
def test_example():
assert 1 + 1 == 2
在上述示例中,teardown_module()
函数通过request.node.own_markers
获取当前模块的所有标记,然后判断是否有名为pytestrail
的标记。如果有,则使用request.config.hook.pytest_runtest_protocol
方法获取测试结果,并打印每个测试用例的结果。
需要注意的是,上述示例中的pytestrail
是一个自定义的标记,你可以根据实际情况替换为其他标记。
关于腾讯云相关产品和产品介绍链接地址,可以根据具体需求选择适合的产品,例如:
领取专属 10元无门槛券
手把手带您无忧上云