求解释为啥修改hook编码格式后运行pycharm结果中看到的id还是乱码,debug已经显示是中文了

已经在conftest.py里重写hook函数,debug也能看到nodeid显示中文了,实际运行用例显示的时候还是存在乱码
以下是我的hook函数代码

def pytest_collection_modifyitems(
    session: "Session", config: "Config", items: List["Item"]
) -> None:
    print (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')

以下是我的用例代码

class Test1:
    @pytest.mark.run(order=2)
    @pytest.mark.parametrize('name',['1安全','2安全'])
    def test_foo(self,name):
        print (name)
        assert True


块引用

目录结构展开看看

内层的conftest里怎么写的呀

def pytest_collection_modifyitems(
    session: "Session", config: "Config", items: List["Item"]
) -> None:
    print (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')
        # print ("1111",item._nodeid)

item._nodeid 是不是写错啦

应该是
item._nodeid = item._nodeid.encode(‘utf-8’).decode(‘unicode-escape’)`

修改过了 还是不行 ,仍然显示乱码

上传下完整代码到github或 gitee

感觉是某个插件或者什么配置影响到了hook函数,传个完整代码

hogwarts-homework: 作业仓库 (gitee.com)
文件为pytestjson/test/test_pytest_order.py

关闭