在unittest中,用例执行过程后,会显示注释中的名称,但在pytest中没有显示,只显示函数名,如下:
如果下面的代码:
class Test_Bbb(unittest.TestCase): """临时""" def test_1(self): """测试test1""" log.info("afjdfdjlajfd") assert 5==6 def test_2(self): """测试test2""" log.info("afjdfdjlajfd") assert 5==6
用pytest执行,想显示中文怎么办呢?看了下官方的,没有找到对应的参数,有一个第3方插件pytest-spec,感觉也不是我想要的,查之,有一个解决方法
在conftest.py中写入下面代码
def pytest_itemcollected(item): par = item.parent.obj node = item.obj pref = par.__doc__.strip() if par.__doc__ else par.__class__.__name__ suf = node.__doc__.strip() if node.__doc__ else node.__name__ if pref or suf: item._nodeid = ' '.join((pref, suf))
再次运行
非常好,已经可以正常显示用例注释名了.