Pytest测试框架(二):pytest 的setup/teardown方法
PyTest支持xUnit style 结构, setup() 和 teardown() 方法用于初始化和清理测试环境,可以保证测试用例的独立性。pytest的setup/teardown方法包括:模块级别(setup_module/teardown_module)、函数级别(setup_function/teardown_function)、类级别(setup_class/ teardown_class)、方法级别(setup_method/teardown_methond或者setup/teardown)。
模块级别
模块中的第一个测试用例开始前执行setup_module方法,模块中的最后一个测试用例结束后运行teardown_module方法。
import pytest
def setup_module():
print("初始化。。。")
def teardown_module():
print("清理。。。")
class Test_Demo():
def test_case1(self):
print("开始执行测试用例1")
assert 1 + 1 == 2
def test_case2(self):
print("开始执行测试用例2")
assert 2 + 8 == 10
def test_case3(self):
print("开始执行测试用例3")
assert 99 + 1 == 100
结果:
模块初始化。。。
PASSED [ 33%]开始执行测试用例1
PASSED [ 66%]开始执行测试用例2
PASSED [100%]开始执行测试用例3
模块清理。。。
函数级别
setup_function/teardown_function在每个测试函数前后运行,只对函数用例生效,不在类中。
import pytest
def setup_function():
print("初始化。。。")
def teardown_function():
print("清理。。。")
def test_case1():
print("开始执行测试用例1")
assert 1 + 1 == 2
def test_case2():
print("开始执行测试用例2")
assert 2 + 8 == 10
def test_case3():
print("开始执行测试用例3")
assert 99 + 1 == 100
结果:
test_setup_teardown2.py::test_case1 初始化。。。
PASSED [ 33%]开始执行测试用例1
清理。。。
test_setup_teardown2.py::test_case2 初始化。。。
PASSED [ 66%]开始执行测试用例2
清理。。。
test_setup_teardown2.py::test_case3 初始化。。。
PASSED [100%]开始执行测试用例3
清理。。。
类级别
类级别函数 setup_class/teardown_class 对类有效,位于类中,在测试类中前后调用一次。
class Test_Demo():
def setup_class(self):
print("初始化。。。")
def teardown_class(self):
print("清理。。。")
def test_case1(self):
print("开始执行测试用例1")
assert 1 + 1 == 2
def test_case2(self):
print("开始执行测试用例2")
assert 2 + 8 == 10
def test_case3(self):
print("开始执行测试用例3")
assert 99 + 1 == 100
结果:
初始化。。。
PASSED [ 33%]开始执行测试用例1
PASSED [ 66%]开始执行测试用例2
PASSED [100%]开始执行测试用例3
清理。。。
方法级别
方法级别函数 setup_method/teardown_method和setup/teardown对类有效,也位于类中,这两个效果一样,在测试类中每个测试方法前后调用一次。
class Test_Demo():
def setup_method(self):
print("初始化。。。")
def teardown_method(self):
print("清理。。。")
def test_case1(self):
print("开始执行测试用例1")
assert 1 + 1 == 2
def test_case2(self):
print("开始执行测试用例2")
assert 2 + 8 == 10
def test_case3(self):
print("开始执行测试用例3")
assert 99 + 1 == 100
结果:
初始化。。。
PASSED [ 33%]开始执行测试用例1
清理。。。
初始化。。。
PASSED [ 66%]开始执行测试用例2
清理。。。
初始化。。。
PASSED [100%]开始执行测试用例3
清理。。。
--THE END--
文章标题:Pytest测试框架(二):pytest 的setup/teardown方法
本文作者:hiyo
本文链接:https://hiyong.gitee.io/posts/pytest-xunit-style-of-setup-teardown/
欢迎关注公众号:「测试开发小记」及时接收最新技术文章!
Pytest测试框架(二):pytest 的setup/teardown方法的更多相关文章
- 『德不孤』Pytest框架 — 1、Pytest测试框架介绍
目录 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5.Pytest框架和Unittest框架区别 (1)Unittes ...
- Pytest 测试框架
一 . Pytest 简介 Pytest是python的一种单元测试框架. 1. pytest 特点 入门简单,文档丰富 支持单元测试,功能测试 支持参数化,重复执行,部分执行,测试跳过 兼容其他测试 ...
- Pytest测试框架(三):pytest fixture 用法
xUnit style 结构的 fixture用于初始化测试函数, pytest fixture是对传统的 xUnit 架构的setup/teardown功能的改进.pytest fixture为测试 ...
- 《带你装B,带你飞》pytest修仙之路3 - setup/teardown
1. 简介 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次.当然还有更高级一点的setupClass和teardownClass ...
- pytest测试框架 -- 简介
一.pytest测试框架简介: (1)pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效. (2)pytest框架可以兼容unittest用 ...
- Pytest测试框架(五):pytest + allure生成测试报告
Allure 是一款轻量级.支持多语言的开源自动化测试报告生成框架,由Java语言开发,可以集成到 Jenkins. pytest 测试框架支持Allure 报告生成. pytest也可以生成juni ...
- Pytest测试框架(一):pytest安装及用例执行
PyTest是基于Python的开源测试框架,语法简单易用,有大量的插件,功能非常多.自动检测测试用例,支持参数化,跳过特定用例,失败重试等功能. 安装 pip install -U pytest ...
- python pytest测试框架介绍二
在介绍一中简单介绍了pytest的安装和简单使用,接下来我们就要实际了解pytest了 一.pytest的用例发现规则 pytest可以在不同的函数.包中发现用例,发现的规则如下 文件名以test_开 ...
- [翻译]pytest测试框架(二):使用
此文已由作者吴琪惠授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 调用pytest 调用命令: python -m pytest [...] 上面的命令相当于在命令行直接调用 ...
随机推荐
- 20200203_windows2012下安装mysql 5.7.29
一. 检查系统版本: 二. 下载mysql, 下载地址: https://dev.mysql.com/downloads/mysql/5.7.html#downloads 三. 解压下载后的压 ...
- PyQt开发样例: 利用QToolBox开发的桌面工具箱Demo
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列 ...
- Python基础概念学习遇到的问题
Python运算符的优先级是怎样的? Python中的迭代是什么意思? Python中的列表解析和列表推导是一回事吗? Python中可迭代对象是什么? Python中容器指的是什么? 关于Pytho ...
- 第11.9节 Python正则表达式的贪婪模式和非贪婪模式
在使用正则表达式时,匹配算法存在贪婪模式和非贪婪模式两种模式,在<第11.8节 Pytho正则表达式的重复匹配模式及元字符"?". "*". " ...
- PyQt学习随笔:使用QPropertyAnimation开发简单动画
QPropertyAnimation是PyQt5.QtCore模块提供的动画设计类,使用该类可以针对PyQt的界面对象进行动画播放,如果要针对一个指定对象进行动画播放,包括如下步骤: 一.创建动画对象 ...
- PostMan设置环境变量&全局变量
一.设置环境变量 1.点击右上角Manage Environment,进入环境变量设置界面 2.定义环境名称,参数名及参数值 3.将接口地址中服务器地址进行参数化,并选择对应的环境执行 二.设置全局变 ...
- 半夜删你代码队 Day1冲刺
一.团队信息 1.团队项目:Midnight聊天室 2.团队名称:半夜删你代码队 3.队员信息: 职务 项目经理 主开发团队 测试人员 姓名 陈惠霖 周楚池 侯晓龙 余金龙 胡兆禧 林涛 二.Alph ...
- 将一个数组转化为需要的格式,来自react官网的商品列表示例
//原来的格式 const PRODUCTS = [ { category: 'Sporting Goods', price: '$49.99', stocked: true, name: 'Foot ...
- TortoiseGit和intellij idea配置秘钥
第一:intellij idea 配置gitlab ssh key 1:打开git bash,不需要进入任何目录,直接输入 ssh-keygen -t rsa 一路回车 2:生成之后找到秘钥文件id_ ...
- sql server添加单独新用户