一、unittest中各阶段的核心概念:TestCase, TestSuite, 断言函数, TextTestRunner,TestFixture

TestCase:所用用例的基类,软件测试中基本的测试单元,测试用例是一个完整的测试单元,可以对某一问题进行验证。

一个完整的测试流程包括:测试前环境的搭建setUp,执行测试代码(run),以及测试后环境的还原(tearDown)

TestSuite:多个测试用例的集合,可嵌套使用。

断言函数:用于对比结果(期望值/实际值)assert 断言语句和 if 分支有点类似,它用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True,

该程序可以继续向下执行;否则程序会引发 AssertionError 错误。

TextTestRunner:用来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法。

TestFixture:测试代码的运行环境,指测试准备前和执行后要做的工作,包括setUp和tearDown方法。

二、测试流程:写测试用例--加载用例--对比结果--执行用例并出结果--测试报告

①写一个类继承unittest.TestCase,其中包括多个以test开头的方法,每个测试方法在加载时生成一个测试实例。

②加载用例:TestSuite类/ TestLoader类

③对比结果:使用断言函数对比(期望值/实际值)

④执行并出结果(TextTestRunner类):运行TestSuite,并将结果保存在TextTestResult中

⑤出报告(HtmlTestReport类):通过HTMLTestRunner将结果输出到HTML

注:

1)通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run来执行,或者可以直接通过TextTestRunner来执行用例

2)Runner执行时,默认将结果输出到控制台,我们可以设置其输出到文件,在文件中查看 结果,也可以通过HTMLTestRunner将结果输出到HTML

例子:

测试方法:

测试用例:

加载用例:

运行结果:

三、其他

1)TestFixture——setUp(),tearDown()方法

setUp() 和 tearDown() 两个方法(其实是重写了TestCase的这两个方法),这两个方法在每个测试方法执行前以及执行后执行一次,setUp用来为测试准备环境,tearDown用来清理环境,已备之后的测试。

2)加载用例

方法一(TestSuite类)

suite=unittest.TestSuite() 
suite.addTest(TestAdd('test_add_two_zero'))

方法二(TestLoader类)

loder=unittest.TestLoader()
#suite.addTest(loder.loadTestsFromTestCase(TestSub)) #以测试类的方式加载
suite.addTest(loder.loadTestsFromModule(Day8_unittest2)) #以测试模块的方式加载

python 单元测试_unittest(七)的更多相关文章

  1. Python单元测试框架unittest之深入学习

    前言 前几篇文章该要地介绍了python单元测试框架unittest的使用,本篇文章系统介绍unittest框架. 一.unittest核心工作原理 unittest中最核心的四个概念是:test c ...

  2. odoo 14 python 单元测试步骤

    # odoo 14 python 单元测试步骤 # 一.在模块根目录创建tests目录 # 二.在tests目录下创建__init__.py文件 # 三.继承TransactionCase(Singl ...

  3. The Hacker's Guide To Python 单元测试

    The Hacker's Guide To Python 单元测试 基本方式 python中提供了非常简单的单元测试方式,利用nose包中的nosetests命令可以实现简单的批量测试. 安装nose ...

  4. [译]PyUnit—Python单元测试框架(1)

    1. 原文及参考资料 原文链接:http://docs.python.org/2/library/unittest.html# 参考文档: http://pyunit.sourceforge.net/ ...

  5. Python单元测试PyUnit框架轻度整改

    原理 参考:单元测试原理 背景 年后有段时间没写代码了,所以趁着周末找了个python单元测试玩下,测试自己的Android应用.发现PyUnit虽然在单个脚本文件中添加多个测试用例,比如官网提供的方 ...

  6. Python单元测试框架

    目录 概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的 ...

  7. 一种数据与逻辑分离的Python单元测试工具

    一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...

  8. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  9. Python学习第七课

    Python学习第七课 'Alex' "Alex"print('hello'*5) #重复输出字符串 print('hellowold'[2:]) #类似于切片操作:会取出 llo ...

随机推荐

  1. 实验一 part2

    #include <stdio.h> int main () { int x; printf("输入一个整数:\n"); scanf("%d",&a ...

  2. Debian系统软件安装

    查看已安装软件 dpkg -l | grep -i name apt-get remove name 建议用root安装,有一些工具,使用非root用户安装后,仍然不识别命令,可能跟权限有关. net ...

  3. SLAM+语音机器人DIY系列:前言

    ------SLAM+语音机器人DIY系列[目录]快速导览------ 第1章:Linux基础 1.Linux简介 2.安装Linux发行版ubuntu系统 3.Linux命令行基础操作 第2章:RO ...

  4. python copy与deepcopy (拷贝与深拷贝)

    copy与deepcopy python 中的copy与deepcopy是内存数据的操作,但是两个函数有一定的区别. 1.copy import copy list = [1, [4, 5, 6], ...

  5. MSF魔鬼训练营-5.3 MS08-067安全漏洞实战

    msf > search ms08_067 Matching Modules ================    Name                                 D ...

  6. sts使用mybatis插件直接生成数据库表的mapper类及配置文件

    首先点击help------>Eclipse Marketplace----->在find中搜索mybatis下面图片的第一个 点击installed 还需要一个配置文件generator ...

  7. 完全删除MySQL及相关软件

    一.删除mysql服务 个人认为首先删除mysql服务最重要,这个多数人会忘记如何删除 首先是查看自己的mysql服务名,需要用这个服务名进行删除 进入命令行 二.卸载mysql,workbench等 ...

  8. maven引用本地jar,并打包部署

    由于项目需要的一个jar在maven仓库里没有,又不想把jar手动导入仓库.然而百度的几个处理方式都是一样的方法,我却没有一个成功的.于是就请教了大神,大神也是各种测试,终于成功实现了,实现如下: 新 ...

  9. Git复习(十二)之命令专场

    命令 git init -> 初始化一个git仓库 git clone -> 克隆一个本地库 git pull -> 拉取服务器最新代码 git fetch –p -> 强行拉 ...

  10. 写两个线程,一个线程打印1-52,另一个线程打印A-Z,打印顺序为12A34B56C......5152Z

    题目: 写两个线程,一个线程打印1-52,另一个线程打印A-Z,打印顺序为12A34B56C......5152Z.要求用线程间的通信. /** * 写两个线程,第一个线程打印1-52,第二个线程打印 ...