首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在pytest中获取teardown_module()中某个模块的所有测试结果(通过/失败

在pytest中,可以使用request对象来获取teardown_module()中某个模块的所有测试结果。request对象提供了访问测试上下文的方法和属性。

首先,在teardown_module()函数中,可以通过request.node属性获取当前模块的Node对象。然后,可以使用request.node.own_markers属性获取当前模块的所有标记。

接下来,可以使用request.config.hook.pytest_runtest_protocol方法来获取当前模块的测试结果。该方法返回一个生成器,可以迭代获取每个测试项的结果。

下面是一个示例代码:

代码语言:python
复制
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是一个自定义的标记,你可以根据实际情况替换为其他标记。

关于腾讯云相关产品和产品介绍链接地址,可以根据具体需求选择适合的产品,例如:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

5分33秒

JSP 在线学习系统myeclipse开发mysql数据库web结构java编程

16分8秒

人工智能新途-用路由器集群模仿神经元集群

领券