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 [...] 上面的命令相当于在命令行直接调用 ...
随机推荐
- dubbo源码学习(二)dubbo容器启动流程简略分析
dubbo版本2.6.3 继续之前的dubbo源码阅读,从com.alibaba.dubbo.container.Main.main(String[] args)作为入口 简单的数据一下启动的流程 1 ...
- ubantu+nginx+uwsgi+django部署
1.更新ubantu的apt apt-get update 必要时候更新系统: apt-get upgrade 2.远程连接服务器 ssh 用户名@ip 上传代码 : scp ...
- Python基础教程目录
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python部分代码样例 老猿Python重难点知识博文汇总 老猿Python博客地址 第1章 Python学习环境构建目 ...
- PyQt(Python+Qt)学习随笔:toolButton的toolButtonStyle属性
toolButtonStyle属性用于确认toolButton按钮显示文字.图标的方式,其类型为枚举类型 Qt.ToolButtonStyle,有如下值: ToolButtonIconOnly(值为0 ...
- 常见的HTML元素及常见检查点
1.<select>标签,可创建单选或多选菜单 检查点:下拉列表数据的正确性.数据被选中是否正确.是否变形.是否只读.多选/单选是否正确 2.<label>标签,相当于一个展示 ...
- IAR环境定义位变量标志位 STM8 MSP430通用
首先建立一个公共点H文件,加入通用代码如下 typedef union { struct { unsigned char b0:1; unsigned char b1:1; unsigned char ...
- 题解-Sakuya's task
题面 Sakuya's task \[\left(\sum_{i=1}^n\sum_{j=1}^n \varphi(\gcd(i,j))\right)\bmod 10^9+7 \] 数据范围:\(1\ ...
- json 注释
一.背景 今天聊个小东西,Json的的的注释.Json十分常见,大家用的很多,在语法上,规范的Json要求,文件里不可以写注释.原因呢,我调查了一下: I removed comments from ...
- Hbase各组件职责
Hbase各组件职责 Client职责 1.HBase有两张特殊表: .META.:记录了用户所有表拆分出来的的Region映射信息,.META.可以有多个Regoin -ROOT-:记录了.META ...
- pandas的学习4-处理丢失数据
import pandas as pd import numpy as np ''' 有时候我们导入或处理数据, 会产生一些空的或者是 NaN 数据,如何删除或者是填补这些 NaN 数据就是我们今天所 ...