栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytest之hook开发

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytest之hook开发

文章目录

什么是hook测试用例ids支持中文编码给测试用例自动加mark标签

什么是hook 测试用例ids支持中文编码


正常使用ids是不支持中文编码,所以需要改写hook函数
那么pytest有哪些hook函数?
pytest的hook函数都放在hookspec.py文件中


其中常用的就是pytest_collection_modifyitems() 方法,将该方法复制到conftest.py中,在加入如下代码即可是使ids支持中文

def pytest_collection_modifyitems(
        session: "Session", config: "Config", items: List["Item"]
) -> None:
    # items 表示所有的测试用例 类型为:list
    # item表示测试用例
    # item.name 表示测试用例的名字
    # item._nodeid  表示测试用例的路径
    for item in items:
        # 修改测试用例
        item.name = item.name.encode('utf-8').decode('unicode-escape')
        item._nodeid = item.nodeid.encode('utf-8').decode('unicode-escape')

再次运行:

给测试用例自动加mark标签

conftest.py

def pytest_collection_modifyitems(
        session: "Session", config: "Config", items: List["Item"]
) -> None:
    # items 表示所有的测试用例 类型为:list
    # item表示测试用例
    # item.name 表示测试用例的名字
    # item._nodeid  表示测试用例的路径
    for item in items:
        # 修改测试用例
        item.name = item.name.encode('utf-8').decode('unicode-escape')
        item._nodeid = item.nodeid.encode('utf-8').decode('unicode-escape')
        if "hook" in item.name:
            # 如果测试用例中名字中包含hook的,自动添加一个mark:hook
            item.add_maker(pytest.mark.hook)

下图为不包含hook的用例 pytest test_hook.py

添加一个名称包含hook的用例:

再使用 pytest -m hook test_hook.py 运行带hook的用例

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/700305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号