Python 修改在使用ddt时测试报告默认显示用例名称与预期不符
正常在不使用ddt时,在方法下添加注释,即可作为用例描述("""用例描述""")
@BeautifulReport.add_test_img("test_add_story") def test_add_story(self): """用例描述""" pass
但是在使用了ddt进行驱动时,上面的方法就已经失效了
@ddt class TestAddStory(TestInit, PageAddStory, PageStory): testdata = read_excel() @data(*testdata) @BeautifulReport.add_test_img("test_add_story") def test_add_story(self, data): """提需求""" pass
测试报告上显示的用例描述如截图
而我在数据准备时,以case_name作为用例描述
在此基础上,为了显示预期的用例描述,需要修改ddt源码
# ddt.py def ddt(cls): for name, func in list(cls.__dict__.items()): if hasattr(func, DATA_ATTR): for i, v in enumerate(getattr(func, DATA_ATTR)): test_name = mk_test_name(name, getattr(v, "__name__", v), i) # test_docstring = getattr(v, "__doc__", None) test_docstring = '' if type(v) is dict: try: test_docstring = v["case_name"] # case_name except: test_docstring = getattr(v, "__doc__", None) if hasattr(func, UNPACK_ATTR): if isinstance(v, tuple) or isinstance(v, list): add_test(cls, test_name, test_docstring, func, *v) else: add_test(cls, test_name, test_docstring, func, **v) else: add_test(cls, test_name, test_docstring, func, v) delattr(cls, name) elif hasattr(func, FILE_ATTR): file_attr = getattr(func, FILE_ATTR) process_file_data(cls, name, func, file_attr) delattr(cls, name) return cls
修改完成后,测试报告显示正常