当前位置: 首页 > news >正文

站长工具搜索广州易网外贸网站建设

站长工具搜索,广州易网外贸网站建设,wordpress微信群二维码,网站的统计代码是什么意思<< 返回目录 1 pytest自动化测试 - pytest夹具的基本概念 夹具可以为测试用例提供资源(测试数据)、执行预置条件、执行后置条件&#xff0c;夹具可以是函数、类或模块&#xff0c;使用pytest.fixture装饰器进行标记。 1.1 夹具的作用范围 夹具的作用范围&#xff1a; …

<< 返回目录

1 pytest自动化测试 - pytest夹具的基本概念

  夹具可以为测试用例提供资源(测试数据)、执行预置条件、执行后置条件,夹具可以是函数、类或模块,使用@pytest.fixture装饰器进行标记。

1.1 夹具的作用范围

  夹具的作用范围:

  • 函数范围:夹具默认范围是函数级,即,每个测试函数执行时,都会执行一遍夹具的前置和后置条件
  • 类范围:夹具的前置条件在类的第一个测试函数执行前执行,在类的最后一个测试函数执行后执行。
  • 模块范围:夹具的前置条件在模块的第一个测试函数执行前执行,在模块的最后一个测试函数执行后执行。
  • 会话范围:夹具的前置条件在测试会话开始时执行一次,后置条件在测试会话结束时执行一次。

1.1.1 函数范围的夹具

  默认(未指定参数)时是函数级的范围。

import pytest@pytest.fixture
def setup_resource():# 准备资源resource = "This is a test resource"print("\n" + "="*65)print("BEGIN: 用例预置条件.")yield resource# 清理资源print("END: 用例`后置条件`.")def test_with_fixture(setup_resource):print("第一个用例开始".center(70))assert "test resource" in setup_resourceprint("第一个用例结束".center(70))def test_another_with_fixture(setup_resource):print("第二个用例开始".center(70))assert len(setup_resource) > 10print("第二个用例结束".center(70))

  yield前的语句是前置条件yield后的语句是后置条件。夹具中的前置条件后置条件,在每个测试用例中都会执行。

输出:

============================= test session starts =============================
platform win32 -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\TYYSOFT\Study\Python\pytest
collected 2 itemstest_ft_subf_fixture_001.py 
=================================================================
BEGIN: 用例预置条件.第一个用例开始                                第一个用例结束                                
.END: 用例`后置条件`.=================================================================
BEGIN: 用例预置条件.第二个用例开始                                第二个用例结束                                
.END: 用例`后置条件`.============================== 2 passed in 0.01s ==============================

  从报文可以看到,夹具中的前置条件在用例开始前执行,后置条件,在用例执行结束时执行。

1.1.2 类范围的夹具

  通过参数@pytest.fixture(scope="class")可以指定夹具的类范围

import pytest@pytest.fixture(scope="class")
def setup_class_resource():resource = "Class resource"print("\n" + "=" * 65)print("【预置条件】")yield resourceprint("【`后置条件`】.")class TestClassWithFixture:def test_class_fixture(self, setup_class_resource):print("第1个测试用例开始.")assert "Class" in setup_class_resourceprint("第1个测试用例结束.\n")def test_another_class_fixture(self, setup_class_resource):print("第2个测试用例开始.")assert len(setup_class_resource) > 10print("第2个测试用例结束.")

输出:

============================= test session starts =============================
platform win32 -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\TYYSOFT\Study\Python\pytest
collected 2 itemstest_ft_fixture_class_001.py 
=================================================================
【预置条件】
第1个测试用例开始.
第1个测试用例结束..第2个测试用例开始.
第2个测试用例结束.
.【`后置条件`】.============================== 2 passed in 0.01s ==============================

1.1.3 模块范围的夹具

  前置条件在模块第一个测试函数执行前执行,后置条件在最后一个函数执行后执行。

import pytest@pytest.fixture(scope="module")
def setup_module_resource():resource = "Module resource"print("\n" + "=" * 65)print("【预置条件】")yield resourceprint("【`后置条件`】")def test_module_fixture1(setup_module_resource):print("第1个用例开始")assert "Module" in setup_module_resourceprint("第1个用例结束\n")def test_module_fixture2(setup_module_resource):print("第2个用例开始")assert len(setup_module_resource) > 10print("第2个用例结束\n")#这个函数函数没有使用夹具
def test_module_fixture3():print("第3个用例开始")assert len("测试不用夹具的函数是否会干扰") > 10print("第3个用例结束")

输出:

============================= test session starts =============================
platform win32 -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\TYYSOFT\Study\Python\pytest
collected 3 itemstest_ft_fixture_module_001.py 
=================================================================
【预置条件】
第1个用例开始
第1个用例结束.第2个用例开始
第2个用例结束.第3个用例开始
第3个用例结束
.【`后置条件`】============================== 3 passed in 0.01s ==============================

  说明:模块中即使存在测试函数没有使用夹具,也不会干扰夹具中的预置条件和后置条件,预置条件始终保存在模块开始执行前执行,后续条件在模块的所有函数执行完时执行。

1.1.4 会话范围的夹具

  下面的示例探索模块范围和会话范围的区别,其中test_ft_fixture_module_001是上一个示例中的模块范围的测试代码,使用from test_ft_fixture_module_001 import *将模块的所有夹具和用例导入到本用例。

import pytest
from test_ft_fixture_module_001 import *@pytest.fixture(scope="session")
def setup_session_resource():resource = "Session resource"print("\n" + "=" * 65)print("【会话-`前置条件`】")yield resourceprint("【会话-`后置条件`】")def test_session_fixture1(setup_session_resource):print("会话-第1个用例开始")assert "Session" in setup_session_resourceprint("会话-第1个用例结束\n")def test_session_fixture2(setup_session_resource):print("会话-第2个用例开始")assert len(setup_session_resource) > 10print("会话-第2个用例结束\n")def test_session_fixture3():print("会话-第3个用例开始")assert len("测试没有使用夹具的第3个用例对`后置条件`的影响") > 10print("会话-第3个用例结束")

输出:

============================= test session starts =============================
platform win32 -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\TYYSOFT\Study\Python\pytest
collected 6 itemstest_ft_fixture_session_001.py 
=================================================================
【模块-预置条件】
模块-第1个用例开始
模块-第1个用例结束.模块-第2个用例开始
模块-第2个用例结束.模块-第3个用例开始
模块-第3个用例结束
.
=================================================================
【会话-`前置条件`】
会话-第1个用例开始
会话-第1个用例结束.会话-第2个用例开始
会话-第2个用例结束.会话-第3个用例开始
会话-第3个用例结束
.【模块-`后置条件`】
【会话-`后置条件`】============================== 6 passed in 0.02s ==============================

从执行结果来看,模块的预置条件在最开始执行,紧随其后的是导入的模块中的测试函数,而会话的前置条件只在当前模块执行前才执行,后置条件是先执行了模块的后置条件,再执行会话的后置条件


作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来源自豆包AI,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

<< 返回目录

http://www.yayakq.cn/news/942063/

相关文章:

  • 建设银行官方网站个人系统板块界面设计案例分析
  • 建设工程造价信息网站校史馆展馆展厅设计
  • 静态网站登陆怎么做wordpress怎么做链接
  • 只有单页面的网站怎么做seo网站域名选择的原则
  • 手机网站建设好吗wordpress小型商城
  • 360建筑网在哪里青岛seo优化公司
  • 做网站市场报价国外做科研的网站
  • 做汽车团购的网站有哪些最新项目
  • 报网站开发培训班网站的seo
  • 南昌网站建设方案详细版湖南建设人力资源网官网
  • 做一个个人主页的网站怎么做免费备案域名
  • 烟台网站设计制作公司电话广东住房和城乡建设厅官方网站
  • 贵州政务网站建设规范做视频给网站到流量
  • 织梦如何做中英文版的网站从网址下载的文件乱码怎么办
  • 洛阳网站推广优化wordpress标题设置
  • 晋中网站seo电子商务网站建设与管理期末答案
  • 长沙市建设厅网站出售外链
  • 做网站免费搭建网站建设小西门
  • 做网站会后期维护吗wordpress实现中英文切换
  • 外语教学网站开发下载并安装app
  • 十堰网站制作公司电话海兴县网站建设
  • 辽阳好的网站建设公司网站建设与维护就业怎么样
  • 网页制作设计课设报告江门网站优化方案
  • 网站建设背景浅变色怎么调出来装修公司怎样拉客户
  • 网站频道运营怎么做做网站需要什么素材
  • 住房建设厅网站石河子做网站公司
  • 一般做兼职在哪个网站太原广告公司
  • 教育学会网站建设项目企业所得税交多少
  • 昆明网站制作内容济南哪里有做网站的公司
  • 网站推广的具体方案wordpress个人博客动漫主题