python学习笔记之——unittest框架
unittest是python自带的单元测试框架,尽管其主要是为单元测试服务的,但我们也可以用它来做UI自动化测试和接口的自动化测试。
unittest框架为我们编写用例提供了如下的能力
定义用例的能力。unittest框架有一套固有套路,可以让我们定义测试用例时更加简单和统一
断言的能力。unittest框架提供了一系列的断言
各种执行策略。通过test suit或者扩展的方式,我们可以自定义用例执行的策略
举例:
import unittest
class TestCase(unittest.TestCase):
def setUp(self):
self.str1="abc" def testC(self):
self.assertEqual("ABC",self.str1.upper()) if __name__=="__main__":
unittest.main()
例子说明:
import unittest
首先要导入unittest库,导入之后才可使用
class TestCase(unittest.TestCase):
定义测试类,类型规范是搜字母需要大写。所有的测试类都必须直接或间接的继承自unittest.TestCase类。
def setUp(self):
self.str1="abc"
setUp(self)方法是一个钩子方法,在每个测试用例执行之前都会执行一次,是做数据初始化的好地方。在上面的例子里,我们为每一个测试方法都定义了被测对象,self.test_string
def testC(self):
self.assertEqual("ABC",self.str1.upper())
这里定义了一个名为testC的测试方法,这个方法就是一个测试用例。注意,只有方法名以test开头的方法才是测试用例。self.assertEqual是一个断言方法,作用是如果第一个参数跟第二个参数相等,那么用例通过,否则用例失败,并在测试报告中打印出错误原因。上面例子中self.str1.upper()先把abc转化成大写的ABC,然后合ABC对比,结果是相等的。
if __name__=="__main__":
unittest.main()
上面的代码表示,如果直接执行该python文件的话,就运行所有的测试类里的测试用例,也就是运行所有的以test开头的方法。
总结
使用unittest的话需要记住下面的几点:
- 导入unittest
- 定义继承自
unittest.TestCase的测试类 - 定义以test开头的测试方法,这个方法就是测试用例,你可以在一个类里定义n个测试用例
- 断言
unittest.main()是执行测试用例最简单的方式
python学习笔记之——unittest框架的更多相关文章
- Python学习笔记:Unittest框架了解
Unittest单元测试框架不仅可以适用于单元测试,还可以适用于自动化测试用来的开发与执行,该测试框架可执行测试用例,并提供丰富的断言方法,最终生成测试报告. 一.Unittest常用方法 1.Tes ...
- python学习笔记(unittest)
刚刚放假回来我想很多人都还没有缓过来吧 这次介绍一个python自带的测试框架 unitest #!/usr/bin/env python # -*- coding: utf_8 -*- import ...
- Python学习笔记_04:Django框架简介
目录 1 什么是Django? 2 Django框架的开发环境搭建 3 Django操作MySql数据库简介 4 功能强大的Django管理工具应用 1 什么是Django? Django是应用于We ...
- python学习笔记:unittest单元测试
单元测试:开发自测时写的代码 unittest基本原理: ♦整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用. ♦unittest是pytho ...
- webdriver(python)学习笔记七——多层框架定位与智能等待
多层框架或窗口定位: switch_to_frame() switch_to_window() 智能等待: implicitly_wait() 现在web应用中经常会遇到框架如(frame)或窗口(w ...
- Python学习笔记之unittest测试类
11-3 雇员:编写一个名为Employee 的类,其方法__init__()接受名.姓和年薪,并将它们都存储在属性中.编写一个名为give_raise()的方法,它默认将年薪增加5000美元,但也能 ...
- python学习笔记(excel+unittest)
准备先利用之前整理的python自带的unittest框架 整合excel 实现接口自动化测试功能 先看看excel表格设置: 下来是对excel获取的代码: #!/usr/bin/env pytho ...
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
- Deep learning with Python 学习笔记(9)
神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...
随机推荐
- AndroidStudio -- AndroidStuido中找不到cache.properties文件
AndroidStuido中找不到cache.properties文件 报错信息: 16:32:10 Gradle sync failed: C:\Users\***\.gradle\caches\2 ...
- Bridge桥接模式(结构型模式)
现有一个需求,一个游戏系统需要构建不同风格的房屋,暂不考虑其他设计模式,需要能实现在PC端.移动端....等等多个平台的构建.最简单的实现方式如下: /// <summary> /// 房 ...
- Asp.Net Core 集成 Hangfire 配置使用 Redis 存储
Hangfire 官方支持 MSSQL 与 Redis(Hangfire.Pro.Redis) 两种 ,由于我的数据库是 MYSQL ,粗略查询了一下文档,现在对 .NET Core 支持的并不够好, ...
- 【转】Windows 8 desktop app中dll搜索路径设置的诡异现象,Bug?
原文地址:http://blog.csdn.net/my_business/article/details/8850151 某个桌面程序在win 8上运行异常的问题困扰了我有近一周,今天终于找到了根本 ...
- zend studio 9.0.2 破解-注册-汉化流程
1.运行 ZendStudio-9.0.2.msi :注意安装后不要启动: 附其下载地址:下载9.0.2版本的Zend StudioZend Studio 9.0.2下载地址:http://www.g ...
- php -- 日期时间
----- 017-datetime.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv=&qu ...
- 27-hadoop-hbase安装
hbase的安装分为单机模式和完全分布式 单机模式 单机模式的安装很简单, 需要注意hbase自己内置一个zookeeper, 如果使用单机模式, 那么该机器的zookeepr不可以启动 1, 添加j ...
- Vue源码之 virtual-dom 实现简析
发现两篇写得特别好的博文,仔细通读,发现豁然开朗. 浅析Vue 中的patch和diff Vue 2.0 的 virtual-dom 实现简析
- list双向链表容器(常用的方法总结)
特别注意,由于list对象的结点并不要求在一段连续的内存中,所以,对于迭代器,只能通过++或者--的操作将迭代器移动到后继或者前驱结点元素处.而不能对迭代器进行+n或者-n的操作,这点与vector等 ...
- Redis-其他命令
1.排序 SORT : SORT sourcekey [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [A ...