一、读取变量的值,实现unittest 参数化

import nose_parameterized,unittest

def calc(a:int,b:int):
return a+b
case_data =[
[10,20,30],
[12,21,33],
[15,21,36]
]
class MyClass(unittest.TestCase):
@nose_parameterized.parameterized.expand(case_data)
def test_compare(self,a,b,expect):
actual = calc(int(a),int(b))
self.assertEqual(actual,expect)
if __name__ == '__main__':
unittest.main()

定义了一个二维数组case_data,用来存值,使用时直接在test方法上方加

@nose_parameterized.parameterized.expand(case_data)

最后可以得到以下测试结果,说明测试成功。

同样,也可以将case_date定义为下面的形式,也可以实现unittest参数化。
case_data =[
(10,20,30),
(12,21,33),
(15,21,36)
]

二、读取文件的方式,实现unittest 参数化

@nose_parameterized.parameterized.expand(case_date) 这句中的case_data, 
只要写个函数,从文件格式读取的每一行放到一个list里,生成一个二维数组,,将这个二维数组赋给case_data就可以了。

如下所示,调用类DataToParam中的text方法,从 case_data.txt 生成一个二维数组。

@nose_parameterized.parameterized.expand(DataToParam.text('case_data.txt'))

下面是读取txt文件的函数封装在类DataToParam 里, 要读取excel的话,可以在DataToParam里再加一个读取excel的函数,然后把判断文件单独拎出来,放一个函数里,这样可以公用。

class DataToParam(object):
@staticmethod
def text(filename,seq=','):
if os.path.isfile(filename):
with open(filename,encoding='utf-8') as f:
res = []
for line in f:
res.append(line.strip().split(seq))
return res
else:
raise Exception('参数化文件不存在!') #主动抛出异常 print(DataToParam.text('case_data.txt'))

最新文章

  1. Python第一天 - 函数
  2. mysql:SQL语句操作数据库中表和字段的COMMENT值
  3. 山东理工大学第七届ACM校赛-最大收益问题 分类: 比赛 2015-06-26 10:25 51人阅读 评论(0) 收藏
  4. 二分图点染色 BestCoder 1st Anniversary($) 1004 Bipartite Graph
  5. delphi中计算指定日期是该月第几周的函数
  6. yii user 组件
  7. java多线程总结一:线程的两种创建方式及优劣比较
  8. mybati的存储过程
  9. 12.06 JavaScript
  10. jmeter之beanshell提取json数据
  11. Oracle的order by的中文排序问题
  12. 爬坑系列----Redis查询key报空指针异常,而redis中确实存在该key
  13. linux 使用 vim 玩python
  14. SpringBoot自动配置源码调试
  15. Snowflake Snow Snowflakes POJ - 3349 Hash
  16. 用python连接mysql失败总结
  17. Hibernate.编写xml文件无自动提示信息
  18. Shader中ColorMask的使用
  19. nyoj847 S + T(贪心)
  20. JavaIo编程基础复习

热门文章

  1. day13<常见对象+>
  2. shell基础篇(五)条件判断
  3. hive的初步认识与hive的本质
  4. 【RF库测试】Variable Should not Exist & variable should exist
  5. mac 特殊符号的操作
  6. Mybatis中的foreach
  7. 在ubuntu 10.04 上QGIS的安装步骤
  8. Unity3D笔记十 游戏元素
  9. Swift - 点击箭头旋转
  10. HDCMS常用的一些调用!