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

修改完成后,測試報告顯示正常 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM