用例运行级别
  模块级(setup_module/teardown_module)开始于模块始末,全局的
  函数级(setup_function/teardown_function)只对函数用例生效(不在类中)
  类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
  方法级(setup_method/teardown_method)开始于方法始末(在类中)
  类里面的(setup/teardown)运行在调用方法的前后

函数级:function与module

setup_function/teardown_function 每个用例开始和结束调用一次

从结果可以看出用例执行顺序:
setup_function》用例 1》teardown_function,setup_function》用例2》teardown_function》setup_function》用例 3》teardown_function

import pytest

def setup_function():
print("setup_function:每个用例开始前都会执行") def teardown_function():
print("teardown_function:每个用例结束后都会执行") def test_one():
print("正在执行--test_one")
x = 'this'
assert 'h' in x def test_two():
print("正在执行--test_one")
x = 'hello'
assert hasattr(x, 'check') def test_three():
print("正在执行--test_one")
a = 'hello'
b = 'hello world'
assert a in b if __name__=='__main__':
pytest.main()

setup_module/teardown_module

setup_module 所有用例开始前执行一次,teardown_module 所有用例结束后执行一次

从运行结果可以看到 setup_module 和 teardown_module 整个.py 模块只执行了一次

import pytest

def setup_module():
print('setup_module:整个.py模块只执行一次')
print('比如:所有用例开始前只打开一次浏览器') def teardown_module():
print('setup_module:整个.py模块只执行一次')
print('比如:所有用例结束后关闭浏览器') def setup_function():
print("setup_function:每个用例开始前都会执行") def teardown_function():
print("teardown_function:每个用例结束后都会执行") def test_one():
print("正在执行--test_one")
x = 'this'
assert 'h' in x def test_two():
print("正在执行--test_one")
x = 'hello'
assert hasattr(x, 'check') def test_three():
print("正在执行--test_one")
a = 'hello'
b = 'hello world'
assert a in b if __name__=='__main__':
pytest.main()

类和方法级:

setup_class/teardown_class:
setup_class 和 teardown_class 等价于 unittest 里面的setupClass 和 teardownClass

从结果看出,运行的优先级:setup_class》setup_method》setup 》用例》teardown》teardown_method》teardown_class

import pytest

class TestCase():

    def setup(self):
print("setup:每个用例开始前都会执行") def teardown(self):
print("teardown:每个用例结束后都会执行") def setup_class(self):
print('setup_class:所有用例执行之前') def teardown_class(self):
print('setup_class:所有用例执行之后') def setup_method(self):
print('setup_method:每个用例开始前执行') def teardown_method(self):
print('teardown_method:每个用例结束后执行') def test_one(self):
print("正在执行--test_one")
x = 'this'
assert 'h' in x def test_two(self):
print("正在执行--test_one")
x = 'hello'
assert hasattr(x, 'check') def test_three(self):
print("正在执行--test_one")
a = 'hello'
b = 'hello world'
assert a in b if __name__=='__main__':
pytest.main()

函数和类的混合:

一个.py 的文件里面既有函数用例又有类和方法用例

从运行结果看出,setup_module/teardown_module 的优先级是最大的,然后函数里面用到的 setup_function/teardown_function与类里面的 setup_class/teardown_class 互不干涉

import pytest

def setup_module():
print('setup_module:整个.py模块只执行一次')
print('比如:所有用例开始前只打开一次浏览器') def teardown_module():
print('setup_module:整个.py模块只执行一次')
print('比如:所有用例结束后关闭浏览器') def setup_function():
print("setup_function:每个用例开始前都会执行") def teardown_function():
print("teardown_function:每个用例结束后都会执行") def test_one():
print("正在执行--test_one")
x = 'this'
assert 'h' in x def test_two():
print("正在执行--test_one")
x = 'hello'
assert hasattr(x, 'check') class TestCase(): def setup_class(self):
print('setup_class:所有用例执行之前') def teardown_class(self):
print('setup_class:所有用例执行之后') def test_one(self):
print("正在执行--test_one")
x = 'this'
assert 'h' in x def test_two(self):
print("正在执行--test_one")
x = 'hello'
assert hasattr(x, 'check') def test_three(self):
print("正在执行--test_one")
a = 'hello'
b = 'hello world'
assert a in b if __name__=='__main__':
pytest.main()

pytest二:setup和teardown的更多相关文章

  1. pytest的setup和teardown

    学过unittest的setup和teardown,前置和后置执行功能.pytest也有此功能并且功能更强大,今天就来学习一下吧. 用例运行级别: 模块级(setup_module/teardown_ ...

  2. python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)

    pytest的setup和teardown函数(曾被一家云计算面试官问到过). pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.与python自带的unitest ...

  3. Pytest测试框架(二):pytest 的setup/teardown方法

    PyTest支持xUnit style 结构, setup() 和 teardown() 方法用于初始化和清理测试环境,可以保证测试用例的独立性.pytest的setup/teardown方法包括:模 ...

  4. 【pytest】(十二)参数化测试用例中的setup和teardown要怎么写?

    还是一篇关于pytest的fixture在实际使用场景的分享. fixture我用来最多的就是写setup跟teardown了,那么现在有一个用例是测试一个列表接口,参数化了不同的状态值传参,来进行测 ...

  5. pytest 2.测试用例setup和teardown

    之前我写的unittest的setup和teardown,还有setupClass和teardownClass(需要配合@classmethod装饰器一起使用),接下来就介绍pytest的类似于这类的 ...

  6. python:pytest中的setup和teardown

    原文:https://www.cnblogs.com/peiminer/p/9376352.html 之前我写的unittest的setup和teardown,还有setupClass和teardow ...

  7. Pytest学习(三) - setup和teardown的使用

    一.前言 从文章标题可以看出,就是初始化和释放的操作,根据我的java习惯来学习pytest,个人感觉没差太多,理解上也不是很难. 哦,对了,差点跑题了,这个框架是基于Python语言的,在学习的时候 ...

  8. pytest自动化2:测试用例setup和teardown

    前言: pytest支持函数和类两种用例方式,针对每种情况都有不同的代码 pytest用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(s ...

  9. pytest文档4-测试用例setup和teardown

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

  10. Pytest系列(3) - setup和teardown的详细使用

    如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 前言 用过unittest的童鞋都 ...

随机推荐

  1. 8、Python-函数

    定义 def printInfo(): print("人生苦短,我用Python") 调用 def printInfo(): print("人生苦短,我用Python&q ...

  2. 学习windows编程 day6 之处理鼠标移动

    #define POINT_MAX 1000 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPara ...

  3. Linux 命令详解(三)./configure、make、make install 命令

    这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤 一.基本信息 1../configure 是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不 ...

  4. C# 一般处理程序下载文件

    using System; using System.Collections; using System.Data; using System.Linq; using System.Web; usin ...

  5. CSS之清除浮动(span/clearfix)

    一.问题描述 web网页设计中,在div元素中有时候常伴有图文结合的post组件.为了使得文本在图像周围环绕,那么需要对图像区域使用float浮动.如果不做清除浮动,则会出现如下结果: 图像比文本高, ...

  6. Centos7下编译CDH版本hadoop源码支持Snappy压缩

    1 下载snappy包并编译 wget https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz tar ...

  7. mvc小技巧

    1.从Controller后台赋值的html标签显示在前台不起作用的问题?比如后台:ViewData["Message"]="<span  style=\" ...

  8. GET和POST有什么区别?及为什么网上多数答案都是错的(转载)

    这仅仅是我认为比较好的关于get和post区别的解答,然后把作者的一些文字踢除留下比较干的部分. 作者:南柯之石链接:http://www.cnblogs.com/nankezhishi/archiv ...

  9. C语言文件操作详解

    C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现.文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 ...

  10. mysql 原理 ~ 事务隔离机制

    简介: 事务隔离知多少内容  一 基础知识  1 事务特性 ACID   A 原子性 C 一致性 I 隔离性 D 持久性  2 并行事务出现的问题    1 脏读 读取了其他事务未提交的数据      ...