unittest報告出現dict() -> new empty dictionary錯誤解決辦法

unittest報告出現dict() -> new empty dictionary錯誤解決辦法spa

說一下緣由,這是因爲unittest中採用了ddt驅動。  因爲版本問題致使code

 問題如圖:blog

 

解決辦法:ip

從新安裝ddt版本,下降其版本字符串

1>查看ddt版本:get

pip show ddt

 

2>卸載已安裝的ddtstring

pip uninstall ddt

3>從新安裝ddt 並指定其版本it

pip install ddt==1.1.3

 

 對比一下兩個版本代碼:pip

舊版:1.1.3io

    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)
          #區別就在此處
if hasattr(func, UNPACK_ATTR): if isinstance(v, tuple) or isinstance(v, list): add_test(cls, test_name, func, *v) else: # unpack dictionary add_test(cls, test_name, func, **v) else: add_test(cls, test_name, 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

 

新版1.2.0

    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) 
                if hasattr(func, UNPACK_ATTR):
                    if isinstance(v, tuple) or isinstance(v, list):
                        add_test(cls, test_name, test_docstring, func, *v)
                    else:
                        # unpack dictionary
                        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

 

從上邊的兩個ddt代碼段,能夠看出,新版新增長了一個test_docstring  這個是指定報告中輸出的字符串。

這個新版增長了,應該在代碼中指定描述。

相關文章
相關標籤/搜索