前言

用过unittest的童鞋都知道,有两个前置方法,两个后置方法;分别是

  • setup()
  • setupClass()
  • teardown()
  • teardownClass()

Pytest也贴心的提供了类似setup、teardown的方法,并且还超过四个,一共有十种

  • 模块级别:setup_module、teardown_module
  • 函数级别:setup_function、teardown_function,不在类中的方法
  • 类级别:setup_class、teardown_class
  • 方法级别:setup_method、teardown_method
  • 方法细化级别:setup、teardown

代码

用过unittest的童鞋,对这个前置、后置方法应该不陌生了,我们直接来看代码和运行结果

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
__title__  =
__Time__   = 2020-04-06 11:40
__Author__ = 小菠萝测试笔记
__Blog__   = https://www.cnblogs.com/poloyy/
"""
import pytest


def setup_module():
    print("=====整个.py模块开始前只执行一次:打开浏览器=====")


def teardown_module():
    print("=====整个.py模块结束后只执行一次:关闭浏览器=====")


def setup_function():
    print("===每个函数级别用例开始前都执行setup_function===")


def teardown_function():
    print("===每个函数级别用例结束后都执行teardown_function====")


def test_one():
    print("one")


def test_two():
    print("two")


class TestCase():
    def setup_class(self):
        print("====整个测试类开始前只执行一次setup_class====")

    def teardown_class(self):
        print("====整个测试类结束后只执行一次teardown_class====")

    def setup_method(self):
        print("==类里面每个用例执行前都会执行setup_method==")

    def teardown_method(self):
        print("==类里面每个用例结束后都会执行teardown_method==")

    def setup(self):
        print("=类里面每个用例执行前都会执行setup=")

    def teardown(self):
        print("=类里面每个用例结束后都会执行teardown=")

    def test_three(self):
        print("three")
def test_four(self):
        print("four")


if __name__ == '__main__':
    pytest.main(["-q", "-s", "-ra", "setup_teardown.py"])

执行结果

到此这篇关于Pytest实现setup和teardown的详细使用详解的文章就介绍到这了,更多相关Pytest setup和teardown内容请搜索程序员的世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员的世界!

Pytest实现setup和teardown的详细使用详解的更多相关文章

  1. python 爬取壁纸网站的示例

    本次爬虫用到的网址是:http://www.netbian.com/index.htm: 彼岸桌面.里面有很多的好看壁纸,而且都是可以下载高清无损的,还比较不错,所以我就拿这个网站练练手。作为一个初学者,刚开始的时候,无论的代码的质量如何,总之代码只要能够被正确完整的运行那就很能够让自己开心的,如同......

  2. 详解用python实现爬取CSDN热门评论URL并存入redis

    一、配置webdriver下载谷歌浏览器驱动,并配置好import timeimport randomfrom PIL import Imagefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom ......

  3. python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析

    一、环境准备python3.8.3pycharm项目所需第三方包pip install scrapy fake-useragent requests selenium virtualenv -i https://pypi.douban.com/simple1.1 创建虚拟环境切换到指定目录创建vir......

  4. 10步写了个Django网站

    Django做网站只要10步,真的只有10步,不信?咱们来数数……今天主要讲解用Pycharm编辑器搭建网站,网站功能是 实现在局域网中快速传递大文件! 比如:同事要给你个1G的文件,你丢一个网站链接给他。他上传后,文件就在你电脑啦!演示效果如下动图:从电脑F磁盘通过浏览器上传,在D盘出现文件,这里......

  5. 正确的理解和使用Django信号(Signals)

    Django 提供一个了“信号分发器”机制,允许解耦的应用在框架的其它地方发生操作时会被通知到。 通俗而讲Django信号的工作原理就是当某个事件发生的时候会发出一个信号(signals), 而监听这个信号的函数(receivers)就会立即执行。Django信号的应用场景很多,尤其是用于不同模......

  6. Python 使用dict实现switch的操作

    Python3还是没有switch,可以利用if-else来实现,但是非常不方便。使用dict来实现会比较简洁优雅。# -*- coding: utf-8 -*-"""Python利用dict实现switch""" def add(x, y......

  7. Python字符串对齐、删除字符串不需要的内容以及格式化打印字符

    删除字符串中不需要的内容1、strip()方法strip:默认是去掉首尾的空白字符,但是也可以指定其他字符;lstrip:只去掉左边的;rstrip:只去掉右边的;print('+++apple '.strip()) # '+++apple'print('+++apple '.lstrip('+')......

  8. 详解python函数传参传递dict/list/set等类型的问题

    传参时传递可变对象,实际上传的是指向内存地址的指针/引用这个标题是我的结论,也是我在做项目过程查到的。学过C的都知道,函数传参可以传值,也可以传指针。指针的好处此处不再赘述。先上代码看看效果:def trans(var):return varsource = {1: 1}dist = trans(s......

  9. python中altair可视化库实例用法

    作为六大python可视化库,基本上学会都是可以通吃任何领域的存在,本章要给大家介绍的Altair就是其中之一的可视化库,能够将数据转化为非常直观的图片,让我们更加清晰的认知数据之前直观的联系,俨然已经成为可视化库中的新星,好啦,下面就让我们详细了解下这个荣获众多粉丝的可视化库的使用技巧吧。安装Al......

  10. Python 多线程之threading 模块的使用

    简介Python 通过 _thread 和 threading 模块提供了对多线程的支持,threading 模块兼具了 _thread 模块的现有功能,又扩展了一些新的功能,具有十分丰富的线程操作功能创建线程使用 threading 模块创建线程通常有两种方式:1)使用 threading 模块中......

随机推荐

  1. R语言条形图创建方法

    条形图表示矩形条中的数据,条的长度与变量的值成比例。 R语言使用函数 barplot() 创建条形图。 R 语言可以在条形图中绘制垂直和水平条。 在条形图中,每个条可以给予不同的颜色。语法在 R 语言中创建条形图的基本语法是H 是包含在条形图中使用的数值的向量或矩阵。xlab 是 x 轴的标......

  2. C#处理医学图像(一):基于Hessian矩阵的血管肺纹理骨骼增强对比

    在医院实际环境中,经常遇到有问题的患者,对于一些特殊的场景,比如骨折,肺结节,心脑血管问题需要图像对比增强来更为清晰的显示病灶助于医生确诊,先看效果:肺纹理增强:肺结节增强:血管对比增强:骨骼对比增强:根据参考资料:MATLAB版本:https://ww2.mathworks.cn/matlabce......

  3. 【函数分享】每日PHP函数分享

    str_pad() 使用另一个字符串填充字符串为指定长度 。string str_pad ( string $input, int $pad_length[, string $pad_string=" "[, int $pad_type=STR_PAD_RIGHT]])参数描......

  4. R语言 数据表匹配和拼接 merge函数的使用

    R中的merge函数类似于Excel中的Vlookup,可以实现对两个数据表进行匹配和拼接的功能。merge(x, y, by = intersect(names(x), names(y)), by.x = by, by.y = by, all = FALSE, all.x = all, all.y......

  5. java中lambda表达式的分析与具体用法

    Lamda表达式λ 希腊字母表中排序第十一位字母,英语名称为Lambda避免匿名内部类定义过多其实质属于函数式 编程的概念(params)->expression[表达式](params)->statement[语句](params)->{statements}(a-> Sy......

  6. 基于Python的接口自动化-读写配置文件

    引言在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值。为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变量值时通过代码读取或者写入数据到该配置文件即可,使用配置文件的好处就是不用在程序员写死,可以使程序更灵......

  7. MySQL8.0.23安装超详细教程

    前言最近在做一个人脸识别的项目,需要用数据库保存学生信息与前段交互。MySQL的优点1、mysql性能卓越,服务稳定,很少出现异常宕机。2、mysql开放源代码且无版权制约,自主性及使用成本低。3、mysql历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。提示:以下是本篇文章正文内容,下面案例......

  8. 计算机网络安全 —— C# 使用谷歌身份验证器(Google Authenticator)

    一、Google Authenticator 基本概念Google Authenticator是谷歌推出的一款动态口令工具,旨在解决大家Google账户遭到恶意攻击的问题,在手机端生成动态口令后,在Google相关的服务登陆中除了用正常用户名和密码外,需要输入一次动态口令才能验证成功,此举是为了保护......

  9. python 网页解析器掌握第三方 lxml 扩展库与 xpath 的使用方法

    今天说的则是使用另外一种扩展库 lxml 来对网页完成解析。同样的,lxml 库能完成对 html、xml 格式的文件解析,并且能够用来解析大型的文档、解析速度也是相对比较快的。要掌握 lxml 的使用,就需要掌握掌握 xpath 的使用方法,因为 lxml 扩展库就是基于 xpath 的,所以这一......

  10. ASP.NET Core 5.0 MVC中的 Razor 页面 介绍

    Razor 是一个用于将基于服务器的代码嵌入到网页中的标记语法。 Razor语法由 Razor 标记、c # 和 HTML 组成。 通常包含 Razor 的文件的扩展名 cshtmlRazor 语法Razor 支持 c #,并使用 @ 符号从 HTML 转换为 c #。 Razor 计算 c # 表......