python-unittest学习
2024-08-21 19:08:01
在说unittest之前,先说几个概念:
TestCase 也就是测试用例
TestSuite 多个测试用例集合在一起,就是TestSuite
TestLoader是用来加载TestCase到TestSuite中的
TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息
先写一个简单的单元测试:
import unittest
# 1.定义一个测试类,类下面有测试方法
# 2.方法中调用assertEqual做校验
# 3.最后用unittest.main()运行所有测试用例 class My(unittest.TestCase):
def testa(self):
self.assertEqual(1,1) def kkk(self):#不是以test开头的方法不会被执行
self.assertEqual(1,2) def test_kkk2(self):
self.assertEqual(1,3) class My2(unittest.TestCase):
def test_kkk3(self):
'''这是kkk3的测试用例'''
self.assertEqual(1,1) def test_kkk4(self):
'''这是test4'''
self.assertEqual(1,2)
if __name__ =="__main__":
unittest.main() #unittest.main() 会找到你所有的测试用例,并将起全部运行 ===================================================
再来一个 单元测试2--会生成测试报告的单元测试
import unittest,HTMLTestRunner,xmlrunner class My(unittest.TestCase):
def test_kkk(self):
self.assertEqual(1,1) def kkk(self): #不是以test开头的测试用例 不会被执行
self.assertEqual(1,2) def test_kkk2(self):
'''这是用例2''' #这是加用例的注释
self.assertEqual(1,2) class My2(unittest.TestCase):
def test_kkk3(self):
'''这是用例3''' #这是加用例的注释
self.assertEqual(2,2) if __name__ == '__main__':
# unittest.main() #unittest.main() 会找到你所有的测试用例,并将起全部运行
suite = unittest.TestSuite() #定义一个空的测试集合
suite.addTest(My('test_kkk2')) #导入单个测试用例
suite.addTest(unittest.makeSuite(My2)) #导入类下面的全部测试用例
# fw = open('report_kkk.html','wb') #二进制的意思,就是有时候保存一些图片或者文本文件的时候就用wb
# runner = HTMLTestRunner.HTMLTestRunner(stream=fw,title='kkk自动化测试报告',description='描述描述')
# runner.run(suite)
#----------下面这个是生成xml格式的测试报告的代码--------------
# runner2 = xmlrunner.XMLTestRunner(output='.') #点 代表当前目录
runner2 = xmlrunner.XMLTestRunner(output='report') #report 为指定目录名
runner2.run(suite)
这是单元测试2的report
下面是xml格式的测试报告--xml格式主要是个后面集成到jenkins用的
最新文章
- Android如何自定义dialog
- Daily Scrum Meeting ——SeventhDay
- IntelliJ Idea 常用快捷键列表
- Don't make a promise when you are in Joy. Don't reply when you are Sad.Don't take decisions when you are Angry.Think Twice.Act Wise.
- jahshaka 2.0 环境配置
- CentOS 6.5升级Python和安装IPython(亲测可用)
- [Shell]条件判断与流程控制:if, case, for, while, until
- poj-3056 http://poj.org/problem?id=3056
- Samba 'smbcacls'命令安全绕过漏洞
- 来自C++之父的建议
- 通过jQuery实时监听表格行数变化
- Linux下Qt Creator编辑器无法输入中文解决
- JQuery请求数据的方式
- Spring @ControllerAdvice @ExceptionHandler 全局处理异常
- 我觉得epoll和select最大的区别
- Redis快速起步及Redis常用命令大全
- Java启动参数及调优
- 【bzoj1086】[SCOI2005]王室联邦 树分块
- sass入门篇
- elasticsearch(5) curl 操作elasticsearch
热门文章
- [您有新的未分配科技点]数位DP:从板子到基础(例题 bzoj1026 windy数 bzoj3131 淘金)
- [POI2012]OKR-A Horrible Poem hash
- 【POJ2891】Strange Way to Express Integers(拓展CRT)
- 【bzoj1502】月下柠檬树
- selenium - webdriver - 截图方法get_screenshot_as_file()
- PID控制算法的C语言实现三 位置型PID的C语言实现
- nginx优化--gzip压缩与expire浏览器缓存
- SpringBoot项目中使用swagger2暴露resftul接口增加JWT来进行安全性验证
- libiop网络库数据结构和基础知识
- C++ string的那些坑