pytest 钩子函数之pytest_collection_modifyitems
pytest_collection_modifyitems
官方文档描述:
在执行收集后调用。可以就地过滤或重新排序项目。
参数
session ( pytest.Session ) -- pytest 会话对象。
config ( pytest.Config ) -- pytest 配置对象。
items ( List [ pytest.Item ] ) -- 项目对象列表。
使用场景1:
当使用参数化时,我们发现用例如果出现中文参数时,用例会显示为Unicode编码,如下:
case:
class CreateAccountTest(TestCase):
@pytest.mark.parametrize("name", ["张三", "李四", "王五"])
def create_account_test(self, name):
self.log_info("执行用例: 创建账户:{} .......".format(name))
执行结果:

那么此时可以使用钩子函数pytest_collection_modifyitems 解决此问题
钩子函数实现如下:
根目录下创建conftest.py
def pytest_collection_modifyitems(session, config, items):
for item in items:
item.name = item.name.encode("utf-8").decode("unicode_escape")
item._nodeid = item._nodeid.encode("utf-8").decode("unicode_escape")
此时执行用例:


浙公网安备 33010602011771号