- 用例收集阶段改写编码
1、在hookspec.py 文件中找到pytest_collection_modifyitems, 复制到conftest.py文件中
2、在conftest.py文件中重写pytest_collection_modifyitems函数
def pytest_collection_modifyitems(items):
"""
1、改写测试用例的名字;
2、改写测试用例路径;
"""
print(items)
# name 用例的名字
# 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')
# pytest源码中nodeid为隐藏的函数名,实际函数的内容为return self._nodeid,
# 因此,这里item中表示测试用例路径的属性名应该为_nodeid
3、通过打断点,查看hook函数调用前后,测试用例的名字和路径的编码格式区别