前言:

  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单元测试框架之简单操作示例的更多相关文章

  1. Pytest单元测试框架-Pytest环境安装

    unittest是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发 ...

  2. Pytest单元测试框架-测试用例运行规则

    1.Pytest测试用例运行规则 在pytest单元测试框架下面执行用例,需要满足以下几个特点: 1. 文件名以test_*.py开头或者*_test.py 2. 测试类.测试函数以test开头 3. ...

  3. Pytest单元测试框架:插件-allure-pytest环境搭建并在本地生成一个测试报告

    之前写了allure-pytest的官方文档啃的内容,有些交流的朋友,实践起来没什么头绪,所以就有了这篇文章,也给自己填个坑 第一步:搭建Allure.JDK环境 1. 搭建JDK环境 不装jdk你会 ...

  4. Pytest单元测试框架——Pytest+Allure+Jenkins的应用

    一.简介 pytest+allure+jenkins进行接口测试.生成测试报告.结合jenkins进行集成. pytest是python的一种单元测试框架,与python自带的unittest测试框架 ...

  5. Pytest单元测试框架-学习

    pytest: Python的一个单元测试框架,基于UnitTest二次开发,语法上更加简洁,可以用来做Python开发项目的单元测试,UI自动化.接口自动化测试等,有很多的插件访问Pytest插件汇 ...

  6. Pytest单元测试框架之FixTure基本使用

    前言: 在单元测试框架中,主要分为:测试固件,测试用例,测试套件,测试执行及测试报告: 测试固件不难理解,也就是我们在执行测试用例前需要做的动作和测试执行后的需要做的事情: 比如在UI自动化测试中,我 ...

  7. Pytest 单元测试框架

    1.pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效 2.安装 pytest pip install pytest 3.验证 pytest 是否安装成功 p ...

  8. Pytest单元测试框架之setup/teardown模块示例操作

    """模块级(setup_module/teardown_module)开始于模块始末,全局的函数级(setup_function/teardown_function)只 ...

  9. Pytest单元测试框架之FixTure内置临时文件tmpdir操作

    1.前言:某些接口需要引用上个接口返回的值,作为下个接口的入参,但笔者又不想在本地维护及创建此文件,此时引出fixture内置函数中的临时文件存储tmpdir 2.首先下面的源码是使用flask框架写 ...

随机推荐

  1. TensorFlow指定CPU和GPU方法

    TensorFlow指定CPU和GPU方法 TensorFlow 支持 CPU 和 GPU.它也支持分布式计算.可以在一个或多个计算机系统的多个设备上使用 TensorFlow. TensorFlow ...

  2. NVIDIA GPU卷积网络的自动调谐

    NVIDIA GPU卷积网络的自动调谐 针对特定设备和工作负载的自动调整对于获得最佳性能至关重要.这是关于如何为NVIDIA GPU调整整个卷积网络. NVIDIA GPU在TVM中的操作实现是以模板 ...

  3. ubuntu虚拟机安装ssh教程

    大家好,这期给大家带来一期Ubuntu虚拟机中ssh的安装教程,话不多说,开整 第一步:输入su后输入密码进入root权限 第二步:在管理员模式下运行apt-get install openssh-s ...

  4. Minecraft类游戏地形生成机制

    目录 前言 生成地形高度 生成生物群落 模拟雨水侵蚀.生成河流(未完) 生成洞穴.裂谷 生成植被 放置树木(Bezier曲线) 生成建筑 生成发展域(元胞自动机模型) 放置建筑(DFS) 连接道路(A ...

  5. MySQL必知必会笔记-Mysql基本操作

    Mysql基本操作 mysql的基本操作包括增.删.改.查,本书中前三章简单的介绍MySQL为何物,查是mysql中非常重要的功能,4-6章展示了mysql的查(查询--select)的简单实现,my ...

  6. PAT甲级 1093 Count PAT‘s (25 分) 状态机解法

    题目 原题链接 The string APPAPT contains two PAT's as substrings. The first one is formed by the 2nd, the ...

  7. 题解 P3940 分组

    有些梦想虽然遥不可及,但不是不可能实现.只要我足够的强. 前言 调了挺长时间的,并查集合并的时候需要 find 一下,不然会炸内存.... 解题思路 参考了题解区一篇思路非常好的题解,在这里讲一下自己 ...

  8. 消失之物(背包DP)(容斥或分治)

    容斥做法: 首先n^2搞出f[i][j]第i个物品,j体积的方案数. 去除每个物品贡献: 设个g[i][j]表示当i不选,j体积方案数(注意不是此时的范围相对于全局,而不是1---i) 那么我们用到一 ...

  9. 在Visual Studio 中使用git——同步到远程服务器-下(十二)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...

  10. <题解>世界树

    世界树<题解> 首先我们拿到这个题之后,能想到的一定是虚树,如果想不到的话,还是重新学一遍去吧 所以我们应该怎么做呢 虚树的板子不需要我再讲一遍了吧 所以对于这个题来说,怎么根据虚树上的节 ...