Python之单元测试框架unittest
创建class继承unittest,每一个测试用例是以test开头的函数,先执行setup,然后用例按照字母的顺序执行,然后执行teardown
import unittest
class demo(unittest.TestCase):
def setup(self):
print "this
is the setup"
def testb(self):
print "this
is test b"
def testa(self):
print "this
is test a"
def teardown(self):
print "this
is the down"
if __name__ == '__main__':
unittest.main()
运行unittest.main即运行所有test开头的用例
测试集
控制测试执行顺序,使用测试集,在测试集中添加测试用例的,用例的先后顺序保证测试执行的顺序
testsuite = unittest.TestSuite()
testsuite.addTest(demotest("test_toregister"))
testsuite.addTest(demotest("test_tologin"))
还可以通过列表添加case
tests=['test_toregister','test_tologin']
testsuite=unittest.TestSuite(map(demotest,tests))
TestLoader是用来加载TestCase到TestSuite中的,其中有几个loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例。
testloader中加载测试的方法:
loadTestsFromTestCase(testcaseclass)#测试用例的类名
loadTestsFromModule(module)#存放用例的模块名
loadTestsFromName(name,module=None)
#这里的name是使用xx.xx.xx等类型的,如有个一demotest的模块,其中有一个demotestclass的类,下面有多个case,test_one,test_two,使用demotest.demotestclass的话,会加载下面
的多个case进行测试,使用demotest.demotestclass.test_one的话只加载test_one用例进行测试
loadTestsFromNames(names,module=None)#names为一系列
discover( start_dir, pattern='test*.py',top_level_dir=None)
#通过给定的start_dir查找符合pattern的所有测试模块
TextTestRunner是来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法。
测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。
suite = unittest.TestLoader().loadTestsFromTestCase(demotest)
unittest.TextTestRunner(verbosity=2).run(suite) 如果测试用例不在同一个py文件中,可是使用unittest的makesuit(testcaseclass)来加载
如
suit.addTests(unittest.makeSuite(demotestcase))
控制用例是否执行,使用框架中提供的装饰器,如
Unittest.skip(“xxx”),如果用例使用了该装饰器,那么该用例将不会被执行而跳过
unittest.skipIf(),满足括号中条件的话就跳过不执行
unittest.skipUnless(),满足括号中的条件不跳过,其他情况下跳过
unittest.expectedFailure(),标记该用例为预期失败的用例,如果在运行过程中失败了,则用例不算失败
Html测试报告—HTMLTestRunner
# 确定生成报告的路径
tm = time.strftime('%d-%H-%M-%S', time.localtime(time.time()))
filePath = cmd.log_path+"/"+tm+"-pyResult.html"
fp = file(filePath, 'wb')
# 生成报告的Title,描述
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='测试报告', description='测试报告')
runner.run(testsuite)
Python之单元测试框架unittest的更多相关文章
- Appium+python的单元测试框架unittest(1)(转)
unittest为python语言自带的单元测试框架,python把unittest封装为一个标准模块封装在python开发包中.unittest中常用的类有:unittest.TestCase.un ...
- Appium+python的单元测试框架unittest(4)——断言(转)
(原文:https://www.cnblogs.com/fancy0158/p/10051576.html) 在我们编写的测试用例中,测试步骤和预期结果是必不可少的.当我们运行测试用例时,得到一个运行 ...
- python之单元测试框架—unittest
一. 什么是单元测试?单元测试的对象是什么? 1: 什么是单元测试? 按照定义,单元测试就是对单个模块或者单个类或者单个函数进行测试,一般是开发做的,按照阶段分,一般就是单元测试.集成测试.系统测试. ...
- python之单元测试框架—unittest(补充)
一. unittest最核心的四个概念 unittest中最核心的四个概念是:test case,test suite,test runner,test fixture TestCase:一个test ...
- Appium+python的单元测试框架unittest(3)——discover(转)
(原文:https://www.cnblogs.com/fancy0158/p/10047906.html) TestSuite套件可以添加很多个用例后运行,但是每个用例都需要调用addTest()函 ...
- Appium+python的单元测试框架unittest(2)——fixtures(转)
(原文:https://www.cnblogs.com/fancy0158/p/10046333.html) unittest提供的Fixtures用以在测试执行前和执行后进行必要的准备和清理工作,可 ...
- Python单元测试框架unittest之单用例管理(一)
一.概述 本文介绍python的单元测试框架unittest,unittest原名为PyUnit,是由java的JUnit衍生而来,这是Python自带的标准模块unittest.unittest是基 ...
- 单元测试框架unittest
单元测试:单元测试,是指对软件中的最小可测试单元进行检查和验证,对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义如:c语言中单元指一个函数,java里单元指一个类,图形化的软件中可以 ...
- Python单元测试框架unittest使用方法讲解
这篇文章主要介绍了Python单元测试框架unittest使用方法讲解,本文讲解了unittest概述.命令行接口.测试案例自动搜索.创建测试代码.构建测试套件方法等内容,需要的朋友可以参考下 概 ...
随机推荐
- RxJava和RxAndroid
现在RxJava和RxAndroid越来越火爆,自己在业余时间也学习了一下,感觉确实很好用,之前 为了完成页面刷新,数据请求,组件信息传递的时候,要使用handler,真的是逻辑思路很强,稍微不注意, ...
- MySQL分页查询大数据量优化方法
方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N适应场景: 适用于数据量较少的情况(元组百/千级)原因/缺点: ...
- ibatis.net 实现多数据库配置
1.1 功能介绍 使用ibatis.net ORM框架时,有时候需要操作多个数据库,同时有时候也需要对连接数据库信息进行加密,本文通过将配置连接写到Web.config中, 这样就可以在Web.co ...
- **优化--后端**: 计数缓存counter_cache; rack-mini-profiler(2300🌟) ; bullet(5000✨):侦测N+1query
rack-mini-profiler 这个 gem,可以永远显示网页的加载时间.(2300✨)开发环境和产品环境都可以用.(生成非常详细的报告) development环境,直接使用gem 'rack ...
- CSS 列表样式详解
CSS列表用于前端的列表排列. CSS列表属性作用如下: 设置不同的列表项标记为有序列表 设置不同的列表项标记为无序列表 设置列表项标记为图像 列表 在HTML中,有两种类型的列表: 无序列表 - 列 ...
- HDU 2276 矩阵快速幂
Kiki & Little Kiki 2 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- Coderforce-574C Bear and Poker(素数唯一分解定理)
题目大意:给出n个数,问能不能通过让所有的数都乘以2的任意幂或乘以3的任意幂,使这n个数全都相等. 题目分析:最终n个数都是相等的,假设那个数为x,根据素数唯一分解定理,x能分解成m*2p3q.所以, ...
- HDU 4751 Divide Groups (2-SAT)
题意 给定一个有向图,问是否能够分成两个有向完全图. 思路 裸的2-sat--我们设一个完全图为0,另一个完全图为1,对于一个点对(u, v),如果u.v不是双向连通则它们两个不能在一组,即u和v至少 ...
- windows安装mysql方法 mysql5.7以后的安装方法
mysql 安装步骤: 1.www.mysql.com 下载mysql 2.解压mysql到E盘,或者其他盘解压后 E:\mysql\bin (bin一定要按照这个目录) 3.这bin目录 ...
- Beta阶段第2周/共2周 Scrum立会报告+燃尽图 14
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2411] 版本控制:https://git.coding.net/liuyy08 ...