a=[{"}]
import unittest
from ddt import ddt,data,unpack

@ddt
class Testlei(unittest.TestCase):
    def setUp(self):
        print("开始")
    # ([{"步骤":"123",'结果':"123","预期":"3"},{"步骤":"1",'结果':"1","预期":"1"}])
    @data(*a)#({"步骤":"123",'结果':"123","预期":"3"},{"步骤":"1",'结果':"1","预期":"1"})
    def test_cases(self,d):
        print(d["预期"])
    def tearDown(self):
        print("结束")
if __name__ == '__main__':
    Testlei().test_cases()
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe E:/yzm_pj/test_a.py
Traceback (most recent call last):
  File "E:/yzm_pj/test_a.py", line 55, in <module>
    Testlei().test_cases()
AttributeError: 'Testlei' object has no attribute 'test_cases'

原因如下,右键执行的时候只显示模块,没有uninttest

解决方法:

方法一:用unitest.main()执行

a=[{"}]
import unittest
from ddt import ddt,data,unpack

@ddt
class Testlei(unittest.TestCase):
    def setUp(self):
        print("开始")
    # ([{"步骤":"123",'结果':"123","预期":"3"},{"步骤":"1",'结果':"1","预期":"1"}])
    @data(*a)#({"步骤":"123",'结果':"123","预期":"3"},{"步骤":"1",'结果':"1","预期":"1"})
    def test_cases(self,d):
        print(d["预期"])
    def tearDown(self):
        print("结束")
if __name__ == '__main__':
    unittest.main()

方法二:点击pycharm菜单栏的run按钮

切换unitest

执行成功

unpack

a=[{"}]
import unittest
from ddt import ddt,data,unpack

@ddt
class Testlei(unittest.TestCase):
    def setUp(self):
        print("开始")
    # ([{"步骤":"123",'结果':"123","预期":"3"},{"步骤":"1",'结果':"1","预期":"1"}])
    @data(*a)#({"步骤":"123",'结果':"123","预期":"3"},{"步骤":"1",'结果':"1","预期":"1"})
    @unpack# 再将{"步骤":"123",'结果':"123","预期":"3"}和{"步骤":"1",'结果':"1","预期":"1"}拆分
           # 以逗号作为拆分点,可以拆分多少个,就用几个参数接收。
    def test_cases(self,aa,bb,cc):#aa,bb,cc接收必须是key名
        fact=3#给定一个实际结果
        try:
           self.assertEqual(int(cc),fact)
           print("比对成功{}与{}相等".format(int(cc),fact))
        except Exception as e:
            print("比对失败{}与{}不相等".format(int(cc),fact))
            raise e
    def tearDown(self):
        print("结束")
if __name__ == '__main__':
    Testlei().test_cases()

运行结果

测试类执行报错:AttributeError: 'Testlei' object has no attribute 'test_cases' 和data,unpack用法解析的更多相关文章

  1. py+selenium 明明定位不到元素,但却不报错或是报错AttributeError: 'list' object has no attribute 'click'【已解决】

    问题:定位不到元素,但却不报错或者出现报错AttributeError: 'list' object has no attribute 'click' 如图  或者  解决方法:   将”driver ...

  2. dnspython模块报错 AttributeError: 'CNAME' object has no attribute 'address'

    有时候用到这个模块的时候会报错 AttributeError: 'CNAME' object has no attribute 'address' 如下所示 [root@ansible ch01]# ...

  3. 关于flask登录视图报错AttributeError: '_AppCtxGlobals' object has no attribute 'user'

    在一个小程序中写了一个登录视图函数,代码如下: @app.route('/login',methods = ['GET','POST']) @oid.loginhandler def login(): ...

  4. Django2.2报错 AttributeError: 'str' object has no attribute 'decode'

    准备将 Django 连接到 MySQL,在命令行输入命令 python manage.py makemigrations 后报错: AttributeError: 'str' object has ...

  5. python文件名不要跟模块名相同,报错AttributeError: 'module' object has no attribute 'Differ'

    python中的文件都会生成pyc文件,包括模块也是这样,所以调用模块的时候,实际上会调用模块.pyc文件:在这个前提下,如果将文件名命名成跟模块名一样,在同一目录下就会生成一个跟模块名一样的pyc文 ...

  6. 机器学习实战:KNN代码报错“AttributeError: 'dict' object has no attribute 'iteritems'”

    报错代码: sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True) 解决 ...

  7. 运行pytest,报错"AttributeError: 'module' object has no attribute 'xxx'"

    最近学习pytest被此问题困扰,敲脑壳,实在是不该.百度解决方法一大堆,我的问题怎么也解决不了,来看一下,我是怎么解决的,各位大佬勿喷,只是自己做笔记用,谢谢. 报错信息如下: 网上解决方法是这样的 ...

  8. python报错“AttributeError: 'set' object has no attribute 'items'“

    作为才开始学爬虫的萌新,遇到了一个这样的错,很懵逼 后面到网络到处查看大佬的解决方法,才发现headers的请求头部信息有错误,headers是一个字典,不是字符串,所以报错了 原代码 headers ...

  9. [已解决]报错:报错AttributeError: 'int' object has no attribute 'upper'

    原因:openpyxl版本低,需升级 pip install --upgrade openpyxl

随机推荐

  1. CodeForces Gym 100685J Just Another Disney Problem (STL,排序)

    题意:给定你大小未知的n个数,你允许有不超过一万次的询问,每次询问两个数,第i个数是否比第j个数小?然后后台会返回给你一个结果YES或者NO(即一行输入), 然后经过多次询问后,你需要给出一个正确的原 ...

  2. CCF 201512-1 数位之和 (水题)

    问题描述 给定一个十进制整数n,输出n的各位数字之和. 输入格式 输入一个整数n. 输出格式 输出一个整数,表示答案. 样例输入 20151220 样例输出 13 样例说明 20151220的各位数字 ...

  3. C#高级参数out,ref,params

    在C#中通过使用方法来获取返回值时,通常只能得到一个返回值.因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢? out 当需要返回一系列返回值时可用out高级 ...

  4. PorterDuffXfermode 图像混合技术在漫画APP中的应用

    此文已由作者游葳授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 写在开头 随着应用开发的深入,视觉同学在完成了页面的基本设计后,再也按耐不住心中的寂寞,开始对各种细节不满意, ...

  5. MySQL之避免插入重复数据

    INSERT ignore INTO `$table_name`($field_name) VALUES(),(),(),()"; //若重复数据可以添加,请在对应的数据表字段中添加数据库索 ...

  6. 指向函数的指针和block

    原文网址: http://www.cnblogs.com/cxbblog/p/3841226.html 一:block基础知识 block基础知识 基本概念:block是用来保存一段代码的:^:是bl ...

  7. SpringBoot | Thymeleaf | 局部更新

    建立一个实体类: public class Fruit { int id; String name; public Fruit() { } public Fruit(int id, String na ...

  8. Codeforces Round #396 (Div. 2) E

    Mahmoud and Ehab live in a country with n cities numbered from 1 to n and connected by n - 1 undirec ...

  9. CVE-2017-3248——WebLogic反序列化漏洞利用工具

    著名的web中间件WebLogic被曝出之前的反序列化安全漏洞补丁存在绕过安全风险,用户更新补丁后,仍然存在被绕过成功执行远程命令攻击的情况,安全风险高,Oracle官方及时发布了最新补丁,修复了该漏 ...

  10. Unity Shader入门精要学习笔记 - 第5章 开始 Unity Shader 学习之旅

    一个顶点/片元 着色器的结构大概如下: Shader "MyShaderName" { Properties { //属性 } SubShader { //针对显卡A的SubSha ...