• unittest报告出现dict() -> new empty dictionary错误解决办法


    unittest报告出现dict() -> new empty dictionary错误解决办法

    说一下原因,这是由于unittest中采用了ddt驱动。  由于版本问题导致

     问题如图:

    解决办法:

    重新安装ddt版本,降低其版本

    1>查看ddt版本:

    pip show ddt

    2>卸载已安装的ddt

    pip uninstall ddt

    3>重新安装ddt 并指定其版本

    pip install ddt==1.1.3

     对比一下两个版本代码:

    旧版:1.1.3

        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  这个是指定报告中输出的字符串。

    这个新版增加了,应该在代码中指定描述。

  • 相关阅读:
    LocalDateTime和Date使用@JsonFormat显示毫秒时间
    curl查看ip的几种方式
    thinkphp5.1生成缩略图很模糊
    ajax发送时禁用按钮
    thinkphp5 不使用form,用input+ajax异步上传图片
    GOLANG 闭包和普通函数的区别
    GOLANG 匿名函数笔记
    父级自适应自己高度且高度完全一致css
    子元素等高 css
    ios 用jquery为元素标签绑定点击事件时,ios上不执行点击事件
  • 原文地址:https://www.cnblogs.com/yhleng/p/9805125.html
Copyright © 2020-2023  润新知