正常在不使用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
修改完成后,測試報告顯示正常