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方法的更多相关文章

  1. 『德不孤』Pytest框架 — 1、Pytest测试框架介绍

    目录 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5.Pytest框架和Unittest框架区别 (1)Unittes ...

  2. Pytest 测试框架

    一 . Pytest 简介 Pytest是python的一种单元测试框架. 1. pytest 特点 入门简单,文档丰富 支持单元测试,功能测试 支持参数化,重复执行,部分执行,测试跳过 兼容其他测试 ...

  3. Pytest测试框架(三):pytest fixture 用法

    xUnit style 结构的 fixture用于初始化测试函数, pytest fixture是对传统的 xUnit 架构的setup/teardown功能的改进.pytest fixture为测试 ...

  4. 《带你装B,带你飞》pytest修仙之路3 - setup/teardown

    1. 简介 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次.当然还有更高级一点的setupClass和teardownClass ...

  5. pytest测试框架 -- 简介

    一.pytest测试框架简介: (1)pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效. (2)pytest框架可以兼容unittest用 ...

  6. Pytest测试框架(五):pytest + allure生成测试报告

    Allure 是一款轻量级.支持多语言的开源自动化测试报告生成框架,由Java语言开发,可以集成到 Jenkins. pytest 测试框架支持Allure 报告生成. pytest也可以生成juni ...

  7. Pytest测试框架(一):pytest安装及用例执行

    PyTest是基于Python的开源测试框架,语法简单易用,有大量的插件,功能非常多.自动检测测试用例,支持参数化,跳过特定用例,失败重试等功能. 安装 pip install -U pytest  ...

  8. python pytest测试框架介绍二

    在介绍一中简单介绍了pytest的安装和简单使用,接下来我们就要实际了解pytest了 一.pytest的用例发现规则 pytest可以在不同的函数.包中发现用例,发现的规则如下 文件名以test_开 ...

  9. [翻译]pytest测试框架(二):使用

    此文已由作者吴琪惠授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 调用pytest 调用命令: python -m pytest [...] 上面的命令相当于在命令行直接调用 ...

随机推荐

  1. 【2020.12.01提高组模拟】A组反思

    105,rk45 T1 赛时一开始先打了\(m=0\)的情况,也就是普通的卡特兰数,然后打了暴力,样例过了,把样例改改就不行了,原因没有保证是枚举的是合法的出栈序列 得分:\(WA\&TLE1 ...

  2. python批量definition query

    import arcpy mxd = arcpy.mapping.MapDocument("current") for lyr in arcpy.mapping.ListLayer ...

  3. Python_爬虫养殖专业户_00

    为什么学习爬虫? 当你在夜深人静,睡不着觉,想看一些更加睡不着觉的图片/视频时... 这是一句疑似玩笑话, 现实情况是, 每一天, 整个社会都积累了大量的数据, 在数据化的社会中,没有大批量的收集和探 ...

  4. Llbp2p是什么?

    这是个很好的问题.用一句话来概况就是libp2p是一个模块化的协议系统,它的规范和程序库可以用来开发p2p网络应用程序. 对等节点基础 对于我们对libp2p在上面的概要描述有很多内容需要进一步解释, ...

  5. 学习JUC源码(2)——自定义同步组件

    前言 在之前的博文(学习JUC源码(1)--AQS同步队列(源码分析结合图文理解))中,已经介绍了AQS同步队列的相关原理与概念,这里为了再加深理解ReentranLock等源码,模仿构造同步组件的基 ...

  6. jmeter.墨振文档

    jmeter 介绍 Apache JMeter是Apache组织开发的基于Java的压力测试工具 (1).它可以用于测试静态和动态资源,例如静态文件.Java 小服务程序.CGI 脚本.Java 对象 ...

  7. java8+ Lambda表达式基本用法

    LIST public class LambdaTest { @Getter @Setter @AllArgsConstructor static class Student{ private Lon ...

  8. 【Alpha冲刺阶段】Scrum Meeting Daily1

    1.会议简述 会议开展时间 2020/5/22 8:30-9:00 PM 会议基本内容摘要 讨论了基础的分工,以及明确了各自模块需要完成的任务 参与讨论人员 全体参与 特别说明 会议需要每天都开展!! ...

  9. 不会吧不会吧,还有开发不会Java填充PDF模板数据的,赶紧看看吧

    思路 根据业务需求,获取实际业务数据,借助itext库功能,将业务数据填充入提前制作好的PDF模板中 操作步骤 制作PDF模板:提前下载好Adobe Acrobat Pro DC 效果展示 准备PDF ...

  10. js实现刮刮卡抽奖

    刮刮卡抽奖是前端活动页常见的功能: 链接:图像擦除插件(下载及教程讲解)    推荐理由:无缝刮痕,兼容性好,上手简单   插件有些要修改的地方,打开图像擦除插件后可以看下方网友讨论,或者直接下载本博 ...