前言:

  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. springmvc自定义的拦截器以及拦截器的配置

    一.自定义拦截器 Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口. 二.HandlerIn ...

  2. 「题解」黑暗塔 wizard

    本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题意简述 给定 \(y\),求 \(\varphi(x)=y\) 中 \(x\) 的个数和最大值. \(1\leq y\leq 10 ...

  3. MySQL 页完全指南——浅入深出页的原理

    之前写了一些关于 MySQL 的 InnoDB 存储引擎的文章,里面好几次都提到了页(Pages)这个概念,但是都只是简要的提了一下.例如之前在聊 InnoDB内存结构 时提到过,但当时的重点是内存架 ...

  4. Unity3D学习笔记1——绘制一个三角形

    目录 1. 绪论 2. 概述 3. 详论 3.1. 准备 3.2. 实现 3.3. 解析 3.3.1. 场景树对象 3.3.2. 绘制方法 4. 结果 1. 绪论 最近想学习一下Unity3d,无奈发 ...

  5. .NET网页后台调用前台js方法时相同Key,调用不成功

    ClientScript.RegisterStartupScript(GetType(), "key", "<script>Save()</script ...

  6. NAT网络地址转换技术

    NAT网络地址转换技术 目录 一.NAT概述 1.1.概述 1.2.NAT 的应用场景 二.NAT的类型及配置命令 2.1.静态NAT 2.2.动态NAT 2.3.Easy IP 2.4.NATP 2 ...

  7. Unity VideoPlayer视频模糊

    如果视频出现模糊或者尺寸不对只需要修改Texture的Size就可以 注意一点  Size的值要跟视频尺寸一直

  8. Linux用户体系

    1.系统中和用户相关的文件 (1)/etc/passwd:记录系统用户信息文件 (2)/etc/shadow:系统用户密码文件 (3)/etc/group:组用户信息文件 (4)/etc/gshado ...

  9. 精尽Spring Boot源码分析 - Condition 接口的扩展

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  10. CosId 1.1.8 发布,通用、灵活、高性能的分布式 ID 生成器

    CosId 通用.灵活.高性能的分布式 ID 生成器 介绍 CosId 旨在提供通用.灵活.高性能的分布式 ID 生成器. 目前提供了三类 ID 生成器: SnowflakeId : 单机 TPS 性 ...