前言:

  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. ffmpeg architecture(上)

    ffmpeg architecture(上) 目录 介绍 视频-您看到的是什么! 音频-您在听什么! 编解码器-缩小数据 容器-音频和视频的舒适场所 FFmpeg-命令行 FFmpeg命令行工具101 ...

  2. linux环境下jmeter安装和运行

    linux环境部署: 在Linux服务器先安装jdk:2.以jdk-8u172-linux-x64.tar.gz为例:下载地址:http://www.oracle.com/technetwork/ja ...

  3. 9, java数据结构和算法: 直接插入排序, 希尔排序, 简单选择排序, 堆排序, 冒泡排序,快速排序, 归并排序, 基数排序的分析和代码实现

    内部排序: 就是使用内存空间来排序 外部排序: 就是数据量很大,需要借助外部存储(文件)来排序. 直接上代码: package com.lvcai; public class Sort { publi ...

  4. Java接口以及匿名内部类,静态代码块

    接口 接口中只能定义public并且是final的公共静态常量,不允许定义变量. 抽象类可以定义抽象方法和非抽象方法,接口中只能定义公共的,抽象的实例方法. 接口只能由其他接口实现继承 子接口继承的目 ...

  5. C语言指针间接引用

    int a = 10; //普通变量 int *p = &a; //一级指针.是变量的地址. int **pp = &p; //二级指针.是一级指针的地址. int ***ppp = ...

  6. NOIP模拟测试15「建造城市city(插板法)·轰炸·石头剪刀布」

    建造城市 题解 先思考一个简单问题 10个$toot$ 放进5间房屋,每个房屋至少有1个$toot$,方案数 思考:插板法,$10$个$toot$有$9$个缝隙,$5$间房屋转化为$4$个挡板,放在t ...

  7. OO unit1 summary

    Unit 1 summary 一.前言 三周左右的学习,OO第一单元顺利结束了,个人认为有必要写个blog来反思总结一下自己第一单元的学习情况,以便更好地进行后面的学习. 之前从来没有写blog的习惯 ...

  8. 渗透测试工具Burpsuite操作教程

    Burpsuite简介 Burp Suite 是一款专业的Web和移动应用程序渗透测试工具,是用于攻击web 应用程序的集成平台,包含了许多工具.Burp Suite为这些工具设计了许多接口,以加快攻 ...

  9. explicit 关键字 禁止隐式转换

    explicit可以抑制内置类型隐式转换,所以在类的构造函数中,使用explicit关键字,防止不必要的隐式转换

  10. MySQL原理 - InnoDB引擎 - 行记录存储 - Off-page 列

    本文基于 MySQL 8 在前面的两篇文章,我们分析了 MySQL InnoDB 引擎的两种行记录存储格式: Compact 格式 Redundant 格式 在这里简单总结下: Compact 格式结 ...