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

def setup_module():
print("setup_module:整个*.py只执行一次")
print('比如浏览器打开的动作')

def teardown_module():
print("teardown_module:整个*.py只执行一次")
print('比如浏览器关闭的动作')

def test_one():
print("正在执行------test_one")
AA = 'this'
assert 'i' in AA

def test_two():
print("正在执行------test_two")
BB = 'Str'
AA = 'Str'
assert AA == BB

def test_three():
print("正在执行------test_three")
AA = 'one'
assert 'i' != AA

if __name__ == '__main__':
pytest.main()

运行代码结果:

# setup_function及tear_function 函数级模块,代码示例如下:

import pytest
def setup_function():
print("setup_function:每个用例开始前都会执行")

def teardown_function():
print("teardown_function:每个用例结束前都会执行")

def test_one():
print("正在执行------test_one")
AA = 'this'
assert 'i' in AA

def test_two():
print("正在执行------test_two")
BB = 'Str'
AA = 'Str'
assert AA == BB

def test_three():
print("正在执行------test_three")
AA = 'one'
assert 'i' != AA

if __name__ == '__main__':
pytest.main()

# 运行结果如下:

优先级划分: setUp_class  》 setUp_module 》setUp

# 类和方法
class TestCase():

def setup(self):
print("setup: 每个用例开始前执行")

def teardown(self):
print("teardown: 每个用例结束后执行")

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 test_one(self):
print("正在执行----test_one")
x = "this"
assert 'h' in x

def test_two(self):
print("正在执行----test_two")
x = "hello"
assert 'hello' == x

def test_three(self):
print("正在执行----test_three")
a = "hello"
b = "hello world"
assert a in b

if __name__ == '__main__':
pytest.main()

代码执行结果如下:

先执行函数 --> 方法 --> 再执行class类里面的类方法

#函数和类混合
def setup_module():
print("setup_module:整个.py模块只执行一次")
print("比如:所有用例开始前只打开一次浏览器")

def teardown_module():
print("teardown_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_two")
x = "hello"
assert x != 'check'

class TestCase():

def setup_class(self):
print("setup_class:类中所有用例开始执前执行")

def teardown_class(self):
print("teardown_class:类中所有用例结束后执行")

def test_three(self):
print("正在执行----test_three")
x = "this"
assert 'h' in x

if __name__ == "__main__":
pytest.main()

Pytest单元测试框架之setup/teardown模块示例操作的更多相关文章

  1. Pytest单元测试框架之简单操作示例

    前言: Pytest是第三方单元格测试框架,更加简单,灵活,而且提供了更多丰富的扩展: Pytest与UnitTest框架的区别 UnitTest测试用例执行顺序是依照ascii码执行,而Pytest ...

  2. Pytest单元测试框架-测试用例运行规则

    1.Pytest测试用例运行规则 在pytest单元测试框架下面执行用例,需要满足以下几个特点: 1. 文件名以test_*.py开头或者*_test.py 2. 测试类.测试函数以test开头 3. ...

  3. Pytest单元测试框架-Pytest环境安装

    unittest是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发 ...

  4. Pytest单元测试框架:插件-allure-pytest环境搭建并在本地生成一个测试报告

    之前写了allure-pytest的官方文档啃的内容,有些交流的朋友,实践起来没什么头绪,所以就有了这篇文章,也给自己填个坑 第一步:搭建Allure.JDK环境 1. 搭建JDK环境 不装jdk你会 ...

  5. Pytest单元测试框架-学习

    pytest: Python的一个单元测试框架,基于UnitTest二次开发,语法上更加简洁,可以用来做Python开发项目的单元测试,UI自动化.接口自动化测试等,有很多的插件访问Pytest插件汇 ...

  6. Pytest单元测试框架之FixTure基本使用

    前言: 在单元测试框架中,主要分为:测试固件,测试用例,测试套件,测试执行及测试报告: 测试固件不难理解,也就是我们在执行测试用例前需要做的动作和测试执行后的需要做的事情: 比如在UI自动化测试中,我 ...

  7. 学习-Pytest(三)setup/teardown

    1. 用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(setup_function/teardown_function)只对函数用例生效 ...

  8. Pytest单元测试框架——Pytest+Allure+Jenkins的应用

    一.简介 pytest+allure+jenkins进行接口测试.生成测试报告.结合jenkins进行集成. pytest是python的一种单元测试框架,与python自带的unittest测试框架 ...

  9. Pytest 单元测试框架

    1.pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效 2.安装 pytest pip install pytest 3.验证 pytest 是否安装成功 p ...

随机推荐

  1. 使用Nucleus SE实时操作系统

    使用Nucleus SE实时操作系统 Using the Nucleus SE real-time operating system 到目前为止,在本系列文章中,我们详细介绍了Nucleus SE提供 ...

  2. Django(60)Django内置User模型源码分析及自定义User

    前言 Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了.它的完整的路径是在django.contrib.auth.models.User. User模型源码分析 ...

  3. seldom 1.0 发布

    seldom 是我几个月前重启的Web UI 自动化开源项目,源项目名 pyse, 基于 unittest 和 selenium 的自动化测试框架. seldom 1.0 做为第一个正式版做了以下改进 ...

  4. python pyyaml操作yaml配置文件

    在测试工作中,可以使用yaml编写测试用例,执行测试用例时直接获取yaml中的用例数据进行测试(如:接口自动化测试) 1.什么是yaml 是一种可读的数据序列化语言,通常用于配置文件 非常简洁和强大, ...

  5. 小程序微信支付(UNIAPP+第三方SDK:binarywang)

    小程序支付流程图说明(UNIAPP+第三方SDK:binarywang) 说明:小程序为UNI-APP开发,使用的第三方微信支付SDK为binarywang提供的,此SDK对微信公众号.小程序.微信各 ...

  6. 【dog与lxy】8.25题解-necklace

    necklace 题目描述 可怜的dog最终还是难逃厄运,被迫于lxy签下城下之约.这时候lxy开始刁难dog. Lxy首先向dog炫耀起了自己的财富,他拿出了一段很长的项链.这个项链由n个珠子按顺序 ...

  7. system表空间

    system : 1.空间,管理:字典所在,不放用户数据;一般单个数据文件即可. 如果system表空间不够大,即可设置自动扩展,或者bigfile 2.system 备份 必须归档下 才能open下 ...

  8. HTTP头部POST表单详解

    2 POST /hello/checkUser.html?opt=xxx HTTP/1.1 方法的声明,Get,Post,Delete等 3 Accept: */* 4 Referer: http:/ ...

  9. Spring Boot下的一种导出Excel文件的代码框架

    1.前言 ​ 在Spring Boot项目中,将数据导出成Excel格式文件是常见的功能.与Excel文件导入类似,此处也用代码框架式的方式实现Excel文件导出,使得代码具有可重用性,并保持导出数据 ...

  10. 每日三道面试题,通往自由的道路6——JVM

    茫茫人海千千万万,感谢这一秒你看到这里.希望我的面试题系列能对你的有所帮助!共勉! 愿你在未来的日子,保持热爱,奔赴山海! 每日三道面试题,成就更好自我 今天我们继续聊聊JVM的话题吧! 1. 那你知 ...