转自:http://canlynet.iteye.com/blog/1671750

python unittest用法

  • 博客分类:
  • python

python的unittest模块提供了一个测试框架,只要我们写一个继承unittest.TestCase的类,类中用setUp做初始化,用tearDown做清理。
主要用到的函数有:
failedinfo表示不成立打印信息failedinfo,为可选参数
self.fail([msg])会无条件的导致测试失败,不推荐使用。
self.assertEqual(value1, value2, failedinfo) # 断言value1 == value2
self.assertTrue(表达式, failedinfo) # 断言value为真
self.assertFalse(表达式, failedinfo) # 断言value为假
# 断言肯定发生异常,如果没发生异常,则为测试失败。
# 参数1为异常,参数二为抛出异常的调用对象,剩余参数为传递给可调用对象的参数。
self.assertRaises(ValueError, self.widget.resize, -1, -1) 
调用时机的加self,如self.assertEqual(self.seq, range(10)),self.assertTrue(value > 100)

更详细的教程见:http://pyunit.sourceforge.net/pyunit_cn.html

Python代码  
  1. #coding=utf-8
  2. import random
  3. import unittest
  4. class TestSequenceFunctions(unittest.TestCase):
  5. def setUp(self):
  6. self.seq = range(10)
  7. def test_shuffle(self):
  8. # make sure the shuffled sequence does not lose any elements
  9. random.shuffle(self.seq)
  10. self.seq.sort()
  11. self.assertEqual(self.seq, range(10))
  12. # should raise an exception for an immutable sequence
  13. self.assertRaises(TypeError, random.shuffle, (1,2,3))
  14. def test_choice(self):
  15. element = random.choice(self.seq)
  16. self.assertTrue(element in self.seq)
  17. def test_sample(self):
  18. with self.assertRaises(ValueError):
  19. random.sample(self.seq, 20)
  20. for element in random.sample(self.seq, 5):
  21. self.assertTrue(element in self.seq)
  22. results_fields = [
  23. ("username", unicode),
  24. ("showid", unicode),
  25. ("total_pv", int),
  26. ("pubdate", unicode),
  27. ("tags", list),
  28. ("showname", unicode),
  29. ("pg", int),
  30. ("ext", str),
  31. ]
  32. results_fields_map = dict(results_fields)
  33. class TestDictValueFormatFunctions(unittest.TestCase):
  34. def setUp(self):
  35. self.results = [{
  36. "username": u"疯狂豆花",
  37. "showid": u"130e28f0fe0811e0a046",
  38. "total_pv": 14503214,
  39. "pubdate": u"2012-07-07 01:22:47",
  40. "tags": [
  41. "轩辕剑",
  42. "天之痕"
  43. ],
  44. "showname" : u"轩辕剑之天之痕",
  45. "pg" : 1,
  46. "ext" : "mp4"
  47. }
  48. ]
  49. def test_format(self):
  50. self.assertTrue(isinstance(self.results, list), "self.results's type must be dict but got {0}".format(type(self.results)))
  51. for r in self.results:
  52. for f in results_fields_map:
  53. value = r.get(f, None)
  54. self.assertTrue(isinstance(value, results_fields_map[f]), u"{0}'s type must be {1} but got {2}".format(value, results_fields_map[f], type(value)))
  55. #self.assertTrue(isinstance(value, results_fields_map[f]))
  56. def test_value(self):
  57. for r in self.results:
  58. self.assertEqual(r["pg"], 1)
  59. self.assertEqual(r["ext"], u"mp4")
  60. if __name__ == '__main__':
  61. # unittest.main() # 用这个是最简单的,下面的用法可以同时测试多个类
  62. # unittest.TextTestRunner(verbosity=2).run(suite1) # 这个等价于上述但可设置verbosity=2,省去了运行时加-v
  63. suite1 = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)
  64. suite2 = unittest.TestLoader().loadTestsFromTestCase(TestDictValueFormatFunctions)
  65. suite = unittest.TestSuite([suite1, suite2])
  66. unittest.TextTestRunner(verbosity=2).run(suite)

python unittest用法相关推荐

  1. Selenium UI自动化测试(四)Python+Unittest+HTMLTestRunner测试报告—百度hao123实例

    Python+Unittest+HTMLTestRunner测试报告-百度个人中心实例 环境配置:https://blog.csdn.net/sevensolo/article/details/100 ...

  2. Python unittest –单元测试示例

    Today we will learn about python unittest and look through python unit test example programs. In pre ...

  3. Python pandas用法

    Python pandas用法 无味之味关注 12019.01.10 15:43:25字数 2,877阅读 91,914 介绍 在Python中,pandas是基于NumPy数组构建的,使数据预处理. ...

  4. python goto 用法

    python goto 用法 pip install goto-statement from goto import with_goto @with_goto def range(start, sto ...

  5. Python SQLite 用法

    Python SQLite 用法 具体可以参考网址 代码: #导入 import sqlite3 #连接库,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象. # test.db:数据路路 ...

  6. python单元测试框架-Python unittest单元测试框架总结

    什么是单元测试 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对于函数abs(),我们可以编写的测试用例为: (1)输入正数,比如1.1.2.0.99,期待返回值与输入 ...

  7. import的用法python_Python导入模块,Python import用法(超级详细)

    Python导入模块,Python import用法(超级详细) 使用 Python 进行编程时,有些功能没必须自己实现,可以借助 Python 现有的标准库或者其他人提供的第三方库.比如说,在前面章 ...

  8. pythonunittest接口测试_基于python+unittest +requests接口测试

    2019独角兽企业重金招聘Python工程师标准>>> 谈到接口测试,大家都不会感到陌生.接口测试的工具和实现方式也有很多,比如ant+jmeter+jemkins.postman. ...

  9. python with用法

    @python with用法 python中with可以明显改进代码友好度,比如: [python] view plaincopyprint? with open('a.txt') as f: pri ...

  10. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

最新文章

  1. linux编译lua,Linux CentOS 编译LUA。。搞半天终于对了= =
  2. 【JQuery】 触发元素的change事件
  3. 《Linux就该这么学》培训笔记_ch06_存储结构与磁盘划分
  4. Java面试会问的——数组、声明、初始化、冒泡、多维数组、稀疏数组
  5. 不具有继承关系的Delegate如何进行类型转换?
  6. android_Text
  7. 软件自动更新解决方案及QT实现
  8. keep健身软件电脑版_电脑软件:优酷 (优化版)
  9. 手机端开发深度学习应用
  10. mysql into outfile语法_select into outfile
  11. [抽奖系统下载]多进程现场抽奖展示系统V2-双屏PPT版-专业抽奖展示工具-具有强劲引擎的抽奖系统-PPT双屏技术深度应用,国内唯一
  12. tekla导出HTML,TEKLA常见问题解答
  13. lwj_C#_周总结1
  14. Css中路径data:image/png;base64的用法详解与操作
  15. 在ASP.NET中获取参数POST和GET方式提交的参数
  16. 32位md5解密_Python 加密算法 md5
  17. python中s和t是两个集合、对s|t描述正确的是_S和T是两个集合,对ST的描述正确的是...
  18. unity3d场景怎么添加天空盒子?
  19. 输出数字三角形(金字塔)
  20. 向上转型与向下转型(超详细)

热门文章

  1. SQL数据查询语句(一)
  2. android: PendingIntent的使用
  3. SpringMVC入门(一)Dispatcher
  4. 大数据解读剩女现象:谁遗忘了她们的爱情?
  5. 谁能再一次接受“南京大×××”不存在?
  6. SpringCloud微服务(02):Ribbon和Feign组件,实现服务调用的负载均衡
  7. 基于MATLAB步态算法仿真的六足仿生机器人
  8. mongodb常用操作——命令行
  9. 一个简单的进程池版的爬虫程序
  10. LuaStudio 9.27 去10分钟退出暗桩板