什么是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')
再次运行:
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的用例
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)