Pytest单元测试框架之简单操作示例
前言:
Pytest是第三方单元格测试框架,更加简单,灵活,而且提供了更多丰富的扩展;
Pytest与UnitTest框架的区别
UnitTest测试用例执行顺序是依照ascii码执行,而Pytest是根据测试用例顺序执行;

1、Pytest官方网站: https://docs.pytest.org/en/latest/
2、Pytest支持 pip 安装,pip3 install pytest,安装成功后直接导入包使用,如: import pytest
3、在Pytest中,它会寻找以test开头或test结尾的测试模块(test**.py、**test.py),然后在模块中执行以test开头的测试方法代码,依据这个进行编写测试用例
4、断言:在UnitTest单元测试框架中提供了丰富的断言方法,如assertEqual() 、assertIn()、assertTrue()、assertIs()等;
在Pytest单元测试框架并没有提供专门的断言方法,而是直接使用Python的assert进行断言
# 导入包
import pytest
#功能:用于计算a与b相加的和
def add(a,b):
return a + b
#功能:用于判断素数
def is_prime(n):
if n < 1:
return False
for i in range(2,n):
if n % i == 0:
return False
return True
#测试相等
def test_add_1():
assert add(3,4) == 7
#测试不相等
def test_add_2():
assert add(17,22) != 50
#测试大于或者等于
def test_add_3():
assert add(17,22) <= 50
#测试小于或者等于
def test_add_4():
assert add(17,22) >= 38
#测试包含
def test_in():
a = 'Hello'
b = 'He'
assert b in a
#测试不包含
def test_not_in():
a = 'Hello'
b = 'hi'
assert b not in a
#判断是否为True
def test_true_1():
assert is_prime(13)
#判断是否为True
def test_true_2():
assert is_prime(7) is True
#判断是否不为True
def test_true_3():
assert is_prime(4) is False
#判断是否不为True
def test_true_4():
assert is_prime(6) is not True
#判断是否为False
def test_false_1():
assert is_prime(8) is False
if __name__ == '__main__':
# main()方法默认执行当前模块中所有以”test开头或test结尾“的函数
pytest.main()
# 若执行终端窗口中使用pytest执行看到执行用例的进度条的话,则需安装 pip3 install pytest-sugar
见执行后输出结果:

其实在一个模块中,不仅包含了函数,还有类,下面来写一段代码实例
# 导入包
import pytest
#功能:用于计算a与b相加的和
def add(a,b):
return a + b
#测试相等
def test_add_1():
assert add(3,4) == 7
#测试不相等
def test_add_2():
assert add(17,22) != 50
class TestAdd(object):
# 测试大于或者等于
def test_add_3(self):
assert add(17, 22) <= 50
# 测试小于或者等于
def test_add_4(self):
assert add(17, 22) >= 38
if __name__ == '__main__':
pytest.main(['-s','-v','test_assert.py'])
见执行后输出结果:

总结:
1、要执行的测试模块必须以test开头
2、要执行的测试函数必须以test开头或test结尾
3、若类要被Pytest执行,那么该类名称首字母必须是:Test,否则不会被执行
Pytest单元测试框架之简单操作示例的更多相关文章
- Pytest单元测试框架-Pytest环境安装
unittest是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发 ...
- Pytest单元测试框架-测试用例运行规则
1.Pytest测试用例运行规则 在pytest单元测试框架下面执行用例,需要满足以下几个特点: 1. 文件名以test_*.py开头或者*_test.py 2. 测试类.测试函数以test开头 3. ...
- Pytest单元测试框架:插件-allure-pytest环境搭建并在本地生成一个测试报告
之前写了allure-pytest的官方文档啃的内容,有些交流的朋友,实践起来没什么头绪,所以就有了这篇文章,也给自己填个坑 第一步:搭建Allure.JDK环境 1. 搭建JDK环境 不装jdk你会 ...
- Pytest单元测试框架——Pytest+Allure+Jenkins的应用
一.简介 pytest+allure+jenkins进行接口测试.生成测试报告.结合jenkins进行集成. pytest是python的一种单元测试框架,与python自带的unittest测试框架 ...
- Pytest单元测试框架-学习
pytest: Python的一个单元测试框架,基于UnitTest二次开发,语法上更加简洁,可以用来做Python开发项目的单元测试,UI自动化.接口自动化测试等,有很多的插件访问Pytest插件汇 ...
- Pytest单元测试框架之FixTure基本使用
前言: 在单元测试框架中,主要分为:测试固件,测试用例,测试套件,测试执行及测试报告: 测试固件不难理解,也就是我们在执行测试用例前需要做的动作和测试执行后的需要做的事情: 比如在UI自动化测试中,我 ...
- Pytest 单元测试框架
1.pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效 2.安装 pytest pip install pytest 3.验证 pytest 是否安装成功 p ...
- Pytest单元测试框架之setup/teardown模块示例操作
"""模块级(setup_module/teardown_module)开始于模块始末,全局的函数级(setup_function/teardown_function)只 ...
- Pytest单元测试框架之FixTure内置临时文件tmpdir操作
1.前言:某些接口需要引用上个接口返回的值,作为下个接口的入参,但笔者又不想在本地维护及创建此文件,此时引出fixture内置函数中的临时文件存储tmpdir 2.首先下面的源码是使用flask框架写 ...
随机推荐
- MySQL 5.7.33 超级详细下载安装配置测试教程(可以安装成功版)
目录 1.引言及注意事项 (1) 引言: (2) 注意: 2.MySQL下载 3.配置环境变量 4.配置my.ini文件(重点) 5.安装MySQL(重点) 6.设置密码 7.测试MySQL是否安装成 ...
- 孟老板 ListAdapter封装, 告别Adapter代码 (上)
BaseAdapter封装(一) 简单封装 BaseAdapter封装(二) Header,footer BaseAdapter封装(三) 空数据占位图 BaseAdapter封装(四) PageHe ...
- PEP 324 subprocess 新的进程模块 -- Python官方文档译文 [原创]
PEP 324 -- subprocess 新的进程模块(subprocess - New process module) 英文原文:https://www.python.org/dev/peps/p ...
- WEB 三维引擎在高精地图数据生产的探索和实践
1. 前言 高精地图(High Definition Map)作为自动驾驶安全性不可或缺的一部分,能有效强化自动驾驶的感知能力和决策能力,提升自动驾驶的等级.对于自动驾驶来说,高精地图主要是给机器用的 ...
- android动画系列
Android 属性动画(Property Animation) 完全解析 (上 动画系列 - 传统View动画与Property动画基础及比较 [Android 基础]Animation 动画介绍和 ...
- 最多能创建多少个 TCP 连接?
我是一个 Linux 服务器上的进程,名叫小进. 老是有人说我最多只能创建 65535 个 TCP 连接. 我不信这个邪,今天我要亲自去实践一下. 我走到操作系统老大的跟前,说: "老操,我 ...
- mysql_my.cnf文件详解
以下是 my.cnf 配置文件参数解释:#*** client options 相关选项 ***##以下选项会被MySQL客户端应用读取.注意只有MySQL附带的客户端应用程序保证可以读取这段内容.如 ...
- 41.1、shell编程案例
1.案例1(表达式案例): 开发shell脚本分别实现以定义变量,脚本传参以及read读入的方式比较2个整数大小.用条件表达式(禁if) 进行判断并以屏幕输出的方式提醒用户比较结果: [root@ba ...
- POJ 3026 Borg Maze 广搜(BFS)+最小生成树
题意:从S出发,去抓每一个A,求总路径最短长度.在S点和A点人可以分身成2人,不过一次只能让一个人走. 思路是先利用BFS求出各点之间的距离,建成图,再套用最小生成树模板. 一次性A了.不过觉得在判断 ...
- AcWing 90. 64位整数乘法
求a*b%p的值. 0<a,b,p<1e18; 原题链接 #include<bits/stdc++.h> #define ull unsigned long long usin ...