为什么要用unittest
'''为什么要使用单元测试框架?: 1.当用例很多的时候用来组织用例和执行用例 2.提供丰富的比较方法 3.提供丰富的日志'''import unittest import HTMLTestRunner import ospath = os.getcwd() class Test_baidu(unittest.TestCase):def setUp(self):print('每一个开始了-----------')def test_1(self):print('test_1')self.assertEqual('1','2',msg='1!=2')def test_2(self):print('test_2')self.assertIsInstance([1,2],list)@unittest.skip #虽然这个方法不执行,但是setup和teardown还要执行的def test_3(self):print('test_3')self.assertIs('1','1')def tearDown(self):print('每一个结束了----------')@classmethoddef setUpClass(cls):print('大项目开是啦+++++++++')@classmethoddef tearDownClass(cls):print('大项目结束了+++++++++++')if __name__ == '__main__':suit = unittest.TestSuite()suit.addTest(Test_baidu('test_2')) #先把要执行的顺序,一个一个添加进去 ---就是组织用例suit.addTest(Test_baidu('test_1'))suit.addTest(Test_baidu('test_3')) #有了skip的存在,加进去也没有用的runner = unittest.TextTestRunner() #把要执行的案例添加到suit之后,用TextTestRunner()对象就可以运行了 --组织好用例一键执行# discover = unittest.TestLoader().discover(path)# runner1 = HTMLTestRunner.HTMLTestRunner()# runner1.run(discover)runner.run(suit)
上面是个 test*.py,,这个是main.py
'''当用例很少的时候可以用suit一个一个的添加。 我们要把所有的用例都放在TEST_Case作用,里面有很多test*.py, 现在只有一个u1.py'''import unittest,os path = os.getcwd() print(path)discover = unittest.defaultTestLoader.discover(path,pattern='u*.py') #discover 返回的就是suit,所以Testloader就是把所有的案例加载到suit中。 runner = unittest.TextTestRunner() runner.run(discover)if __name__ == '__main__':unittest.main(verbosity=1)
skip跳过测试用例
import unittest import HTMLTestRunner import ospath = os.getcwd() class Test_baidu(unittest.TestCase):def setUp(self):print('每一个开始了-----------')def test_1(self):print('test_1')self.assertEqual('1','2',msg='1!=2')def test_2(self):print('test_2')self.assertIsInstance([1,2],list)@unittest.skip #虽然这个方法不执行,但是setup和teardown还要执行的def test_3(self):print('test_3')self.assertIs('1','1')@unittest.skipIf(3<2,'当条件为真时跳过测试,条件为假的时候执行案例')def test_4(self):print('test_4')self.assertIs('1','1')@unittest.skipUnless(3<2,'当条件为假的时候不执行测试用例') #unless 除非def test_5(self):print('test_5')self.assertIs('1','1')def tearDown(self):print('每一个结束了----------')@classmethoddef setUpClass(cls):print('大项目开是啦+++++++++')@classmethoddef tearDownClass(cls):print('大项目结束了+++++++++++')if __name__ == '__main__':unittest.main(verbosity=2)
生成html文件
import unittest,os from HTMLTestRunner import HTMLTestRunner path = os.getcwd() print(path)discover = unittest.defaultTestLoader.discover(path,pattern='u*.py') #discover 返回的就是suit,所以Testloader就是把所有的案例加载到suit中。 htmlpath = path+r'\report.html' print(htmlpath)f = open(htmlpath,'wb') runner = HTMLTestRunner(stream=f,verbosity=2,title='测试报告',description='这个是自己的的测试结果') #htmltestrunner 就是对testrunner的封装 runner.run(discover) f.close()if __name__ == '__main__':unittest.main(verbosity=1)
import time now = time.strftime("%Y-%m-%d %H-%M-%S") '''原来的html文件名是写死的,重新生成就会覆盖,所有让每次名字不一样加入时间(文件名好像不能用:一直报错)''' htmlpath = 'F:/asus/auto_file/unittest_html'+'/'+now+'report.html'f = open(htmlpath,'wb')runner = HTMLTestRunner(stream=f,verbosity=2,title='测试报告',description='这个是自己的的测试结果') #htmltestrunner 就是对testrunner的封装 runner.run(discover) f.close()
转载于:https://www.cnblogs.com/tarzen213/p/11108860.html
为什么要用unittest相关推荐
- python selenium unittest_python+selenium+unittest——ui自动化的轻量级选择
最近项目部分趋于稳定,部分功能进入了维护阶段,但每次的小改动都需要进行回归测试,回归的用例不多但也算是重复劳动浪费资源.为了节约这部分人力,我考虑引入web的ui自动化.之前在其他项目中用的都是jav ...
- linux下运行python unitest_Python unittest打印日志可以在Linux上运行,但在Windows上不行...
我正在尝试编写一个unittest,它将stdout和stderr重定向到一个写在Windows网络驱动器上的文件.出于某些原因,相同的脚本(只有diff.是目录路径)可以在Linux上工作,但在Wi ...
- 软件测试培训教程:pytest与unittest区别
在软件测试培训教程中,会讲到关于pytest与unittest区别,那么本期教程小编就为大家详细的介绍一下pytest与unittest区别有哪些? pytest与unittest区别: 一.用例编写 ...
- unittest 框架学习
为什么80%的码农都做不了架构师?>>> 今天我学习了,怎么把testcase分到不同的文件中,然后在集中到一个testsuite中一起跑,我还学会了怎么打包,怎么引用. 打包 ...
- unittest安装教程_unittest框架与自动化测试环境的搭建
1.unittest框架简介 首先以selenium IDE录制的一段代码为例(脚本的录制请参考其他文档),说明unittest框架的使用. 图 1 要使用unittest框架,首先需要import ...
- python unit test 访问开发代码,使用Python的unittest模块作为testrunner时,如何在测试前运行初始化代码?...
How can a user of a library run his own initialization code (setting debug levels of loggers for exa ...
- python中setup什么意思_Python unittest中setUp()和setUpClass()有什么区别?
当您在班级中有多个测试方法时,差异就会显现出来. setUpClass和tearDownClass为整个类运行一次; setUp和tearDown在每个测试方法之前和之后运行. 例如: class E ...
- unittest框架执行用例
pycharm中运行脚本的方式总共有三种,分别为:unittest模式,pytest模式,普通模式,今天主要来聊一聊unittest模式执行与普通执行(因为最近在学习unittest框架,所以pyte ...
- python 单元测试_聊聊 Python 的单元测试框架(一):unittest
本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...
- python装饰器执行顺序_python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures...
1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...
最新文章
- 搭建Hadoop集群步骤
- 网络上可供测试的Web Service
- 《麻省理工学院技术评论》评出最新十大突破性技术
- 神在夏至祭降下了神谕(oracle)
- 22道Java面试题,看看你会了多少?
- C# MD5加密解密帮助类
- 快速附加没有日志文件的 SQL Server 数据库文件!
- 网络中工作组与域的解释
- android实现文本输入,Android实现智能提示的文本输入框AutoCompleteTextView
- 【leetcode】590. N-ary Tree Postorder Traversal
- Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书
- luoguP4242树上的毒瘤
- 32个程序员泪(méng)流(fān)满(quán)面(chǎng)的瞬间
- Java开发者必备:超全的Java问题排查工具单
- 二叉树后序遍历_二叉树后序遍历非递归实现
- 微软创投加速器最新成果展示:人工智能技术杀入时尚界
- 海量图标矢量图免费下载【来自阿里】
- c语言计算三个并联电阻,3个电阻并联怎么计算
- android 微信自带表情,Android 软键盘和emoji表情切换方案,和微信几乎一样的体验...
- U盘启动盘cmd制作
热门文章
- Win32下病毒设计入门详细解说
- Java多线程同步Synchronized深入解析
- 关于解决tomcat的一个错误
- Shrio Unable to execute ‘doFinal‘ with cipher instance
- springboot学习笔记(五)
- 浅谈以太坊智能合约的设计模式与升级方法
- 深入理解Linux内存管理--目录导航
- Android7.0 PowerManagerService(2) WakeLock的使用及流程
- Android安全系列工具
- IDA Pro ARM指令集和Thumb指令集的切换