为什么要用unittest
'''为什么要使用单元测试框架?:
1.当用例很多的时候用来组织用例和执行用例
2.提供丰富的比较方法
3.提供丰富的日志''' import unittest
import HTMLTestRunner
import os path = os.getcwd()
class Test_baidu(unittest.TestCase):
def setUp(self):
print('每一个开始了-----------') def test_1(self):
print('test_1')
self.assertEqual('','',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('','') def tearDown(self):
print('每一个结束了----------') @classmethod
def setUpClass(cls):
print('大项目开是啦+++++++++') @classmethod
def 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 os path = os.getcwd()
class Test_baidu(unittest.TestCase):
def setUp(self):
print('每一个开始了-----------') def test_1(self):
print('test_1')
self.assertEqual('','',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('','') @unittest.skipIf(3<2,'当条件为真时跳过测试,条件为假的时候执行案例')
def test_4(self):
print('test_4')
self.assertIs('','') @unittest.skipUnless(3<2,'当条件为假的时候不执行测试用例') #unless 除非
def test_5(self):
print('test_5')
self.assertIs('','') def tearDown(self):
print('每一个结束了----------') @classmethod
def setUpClass(cls):
print('大项目开是啦+++++++++') @classmethod
def 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()
为什么要用unittest的更多相关文章
- python_单元测试unittest
Python自带一个单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 步骤1:首先引入unittest模块--import un ...
- python单元测试unittest
单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和 调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而 ...
- Python 下的unittest测试框架
unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...
- Python unittest appium
import unittest from appium import webdriver from appium.common.exceptions import NoSuchContextExcep ...
- selenium-webdriver(python) (十六) --unittest 框架
学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selen ...
- Node.js的UnitTest单元测试
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } 在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTes ...
- unittest使用过程中sys.exit(not self.result.wasSuccessful())
起因: 在运行下面的unittest过程中出现了个Traceback: 被测试脚本: # splitter.py def split(line, types=None, delimiter=None) ...
- 三言两语聊Python模块–单元测试模块unittest
实际上unittest模块才是真正意义上的用于测试的模块,功能强大的单元测试模块. 继续使用前面的例子: # splitter.py def split(line, types=None, delim ...
- unittest测试驱动之HTMLTestRunner.py
对于自动化来说,测试报告是必须的,在敏捷化的团队中,团队中的成员需要自动化这边提供自动化的测试报告,来判断系统的整体质量以及下一步的测试策略.单元测试库生成测试输出到控制台的窗口上,但是这样的结果看起 ...
- unittest可能面临的问题以及解决方法
问题1:用例的执行顺序 当使用unittest.main()时,用例的执行是按照ascall值的顺序来执行的,所以如果使用main()方法来执行用例的话,那么就需要通过命名来限制执行顺序,比如想要先执 ...
随机推荐
- python全栈开发,Day43(引子,协程介绍,Greenlet模块,Gevent模块,Gevent之同步与异步)
昨日内容回顾 I/O模型,面试会问道 I/O操作,不占用CPU,它内部有一个专门的处理I/O模块 print和写log属于I/O操作,它不占用CPU 线程 GIL保证一个进程中的多个线程在同一时刻只有 ...
- php中魔术方法有什么用
在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利.PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发. __construct ...
- Leetcode_1278. Palindrome Partitioning III_[DP]
题目链接 You are given a string s containing lowercase letters and an integer k. You need to : First, ch ...
- kibana使用日志时间进行排序
kibana默认的是按照客户端的采集时间(@timestamp)进行排序,这往往不是我们所需要的,我们需要的是对日志实际时间进行排序,要解决这个问题,有很多种方法,可以在elasticsearch建立 ...
- 20180805-Java ByteArrayInputStream类
ByteArrayInputStream bArray = new ByteArrayInputStream(byte [] a); ByteArrayInputStream bArray = new ...
- IDEA搭建spingboot项目
1.Springboot2.x是依赖于JDK1.8及以上版本的.因此先在电脑上安装JDK1.8,由于公司的项目用的是JDK1.7,所以要在JDK1.7的基础上在安装JDK1.8,让两者同时存在于电脑上 ...
- 【进阶技术】一篇文章搞掂:RibbitMQ
一.简介 一开始,消息队列源自于一个激进的工程师的思想,他希望有一种通用软件“总线”能解决程序间繁重的信息通信工作 后来出现了很多消息队列产品,但是他们互不兼容,价格昂贵 后来出现了AMQP,高级消息 ...
- oracle12.2 CDB PDB基本管理操作
容器间切换 切换到对应的PDBSSQL> alter session set container=pdb1;Session altered.SQL> alter database open ...
- hdu2182Frog(动态规划)
Problem Description A little frog named Fog is on his way home. The path's length is N (1 <= N &l ...
- jmeter 添加header
接口说明文档: article.fetch(通用转码服务) 通用转码服务,获取任意 url 的正文以及 title 等基本信息,仅支持 post 方法请求. 参数 参数 类型 是否必须 示例 其它说明 ...