系列文章目录

Pytest测试框架(一):pytest安装及用例执行
Pytest测试框架(二):pytest 的setup/teardown方法
Pytest测试框架(三):pytest fixture 用法
Pytest测试框架(四):pytest 参数化用例
Pytest测试框架(五):pytest + allure生成测试报告
Pytest插件开发


目录

  • 系列文章目录
  • 模块级别
  • 函数级别
  • 类级别
  • 方法级别

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 pytestdef setup_module():print("初始化。。。")def teardown_module():print("清理。。。")class Test_Demo():def test_case1(self):print("开始执行测试用例1")assert 1 + 1 == 2def test_case2(self):print("开始执行测试用例2")assert 2 + 8 == 10def test_case3(self):print("开始执行测试用例3")assert 99 + 1 == 100

结果:

模块初始化。。。
PASSED                     [ 33%]开始执行测试用例1
PASSED                     [ 66%]开始执行测试用例2
PASSED                     [100%]开始执行测试用例3
模块清理。。。

函数级别

setup_function/teardown_function在每个测试函数前后运行,只对函数用例生效,不在类中。

import pytestdef setup_function():print("初始化。。。")def teardown_function():print("清理。。。")def test_case1():print("开始执行测试用例1")assert 1 + 1 == 2def test_case2():print("开始执行测试用例2")assert 2 + 8 == 10def 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 == 2def test_case2(self):print("开始执行测试用例2")assert 2 + 8 == 10def 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 == 2def test_case2(self):print("开始执行测试用例2")assert 2 + 8 == 10def 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测试框架(二)---fixture介绍

    目录 一.fixture函数的定义 二.fixture函数的调用 三.fixture函数的返回 四.conftest.py的使用 五.使用实例 一.fixture函数的定义 把一个函数定义为fixtu ...

  2. pytest测试框架(七)---pytest与jenkins集成(pytest+jenkins+allure)

    目录 一.pytest注册命令行选项 1.addoption 2.pytestconfig.getoption 3.示例 二.Jenkins上显示allure测试报告 1.安装插件 2.配置Allur ...

  3. pytest测试框架系列 - pytest 断言assert使用

    前言 测试用例的预期结果是用例不可缺少的一部分,那么断言就是自动化测试不可缺少的一步,一个没有断言的用例,自动化测试的就没有意义了.那什么是断言呢? 简单来讲就是实际结果和期望结果去对比,符合预期那就 ...

  4. Python编程必不可少的pytest测试框架

    进行编程测试重要的是为了更高效的完成功能的实现. pytest是基于unittest实现的第三方测试框架,比 unittest 更加的简洁.高效,并且可以完美兼容 unittest 的测试代码,无需对 ...

  5. Pytest 测试框架——数据驱动

    引言 前面已经和大家介绍过 Unittest 测试框架的数据驱动框架 DDT,以及其实现原理.今天和大家分享的是 Pytest 测试框架的数据驱动,Pytest 测试框架的数据驱动是由 pytest ...

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

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  7. pytest 测试开发 —— 上手 pytest 实现自动化测试

    pytest 调研报告 -- 上手 pytest 实现自动化测试 简介 / 前言 pytest是什么? 使用步骤 一.运行 pytest 测试 demo 二.如何在 pytest 运行的时候输出 pr ...

  8. python测试框架之Pytest(二) : 测试用例的前置setup后置teardown用法

    目录 pytest中的前置和后置 类内外执行:方法细化级setup/teardown 类外执行:模块级(setup_module/teardown_module) 类外执行:函数级(setup_fun ...

  9. Pytest测试框架中,setup和teardown函数的作用及使用方法

    作为一名Python开发人员,您一定知道Pytest是一个广泛使用的Python测试框架. 它具有易用性和灵活性,可以帮助您快速编写测试用例,并且能够支持包括单元测试.集成测试.功能测试等多种测试类型 ...

最新文章

  1. 一个java删除文件夹的小方法
  2. EIGRP OSFP 利用NULL0接口防止路由环路 Loopback Null0接口揭秘
  3. web前端零基础入门学习!前端真不难!
  4. How to get ABAP code coverage result
  5. React Native之通过createStackNavigator实现携带参数的页面与页面之间的跳转
  6. VS-watch窗口
  7. FLEX AIR添加系统托盘图标步骤
  8. 微网站|h5弹窗|手机网站 html5 弹窗、弹层、提示框、加载条
  9. 【语音合成】基于matlab语音信号变调【含Matlab源码 566期】
  10. Unit1 Homework
  11. android 视频播放器m3u8,Android 播放/下载M3U8视频(转)
  12. Js实现炫酷随机抽人
  13. 硬盘三大种类( SSD ; HHD ; HDD )
  14. 配置8266连接中移物联网OneNet平台
  15. 变量命名神器Codelf
  16. 5G NR 系统消息
  17. Http请求全过程简述
  18. Excel如何间隔插入空白列
  19. 百度api识别身份证信息
  20. 李政道和杨振宁合作历程

热门文章

  1. 苹果系统小技巧 篇六:Mac的10个必备小技巧,原来Windows的功能早在Mac上实现了
  2. mysql报错信息1067_mysql 1067错误报错!这个是mysqld - -console得到的信息
  3. 【C生万物】 函数递归篇
  4. AWFWD改进后的融合算法
  5. C++ endl 详解
  6. 如何把EXCEL文本格式里的数字批量转成文本
  7. Redis基础篇(万丈高楼平地起):核心底层数据结构
  8. ☀️光天化日学C语言☀️(01)- 第一个C语言程序 | 万丈高楼平地起
  9. 通用表查询返回所有行(只适用于单表)
  10. 抖音xlog算法解密过程