pytest学习和使用9-fixture中conftest.py如何使用?
创始人
2024-04-09 20:15:49
0

9-fixture中conftest.py如何使用?

  • 1 引入
  • 2 conftest.py简介
  • 3 conftest.py特点
  • 4 实例
    • 4.1 conftest.py
    • 4.2 test_conftest1.py
    • 4.3 test_conftest2.py
  • 5 conftest.py优先级

1 引入

  • 之前学习使用fixture前置实现用例的登陆,当时在一个脚本中实现的;那如果其他的脚本也需要用到登陆,这样调用起来可能比较麻烦;
  • 所以我们可以把登陆的fixture放到conftest.py,让pytest去查找。

2 conftest.py简介

  • conftest.py是一个配置文件;
  • 可单独管理一些预置的操作场景;
  • pytest里面默认读取conftest.py里面的配置;
  • 可以理解为一个专门存放fixture的配置文件。

3 conftest.py特点

  • conftest.py配置脚本名称固定不可修改;
  • conftest.py与用例要在同一个pakage下,并且有__init__.py文件;
  • 不需要import导入 conftest.pypytest用例会自动查找

4 实例

  • 以下是两个用例都调用conftest.py:
    在这里插入图片描述

4.1 conftest.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:conftest.py
# 作用:xxx
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelsonimport pytest@pytest.fixture()
def open():print("打开浏览器")yieldprint("关闭浏览器")

4.2 test_conftest1.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:test_conftest1.py
# 作用:conftest.py的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelsonimport pytestdef test_case1(open):print("执行用例1......")def test_case2(open):print("执行用例2......")if __name__ == "__main__":pytest.main(["-s", "test_conftest1.py"])
test_conftest1.py::test_case1              打开浏览器
PASSED                                     [ 50%]执行用例1......关闭浏览器test_conftest1.py::test_case2              打开浏览器
PASSED                                     [100%]执行用例2......关闭浏览器============================== 2 passed in 0.02s ==============================

4.3 test_conftest2.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:test_conftest2.py
# 作用:conftest.py的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelsonimport pytestdef test_case3(open):print("执行用例3......")def test_case4(open):print("执行用例4......")if __name__ == "__main__":pytest.main(["-s", "test_conftest2.py"])
test_conftest2.py::test_case3              打开浏览器
PASSED                                     [ 50%]执行用例3......关闭浏览器test_conftest2.py::test_case4              打开浏览器
PASSED                                     [100%]执行用例4......关闭浏览器============================== 2 passed in 0.02s ==============================

5 conftest.py优先级

  • 前边说了conftest.py需要和用例在同一个package下,那如果不同的位置有多个conftest.py,如何判断执行顺序呢?
  • conftest.py作用范围是当前目录包括子目录里的测试模块;

A、测试框架根目录创建conftest.py文件,文件中的Fixture的作用范围是所有测试模块;
B、某个单独的测试文件夹里创建conftest.py文件,文件中Fixture的作用范围,就仅局限于该测试文件夹里的测试模块;该测试文件夹外的测试模块,或者该测试文件夹外的测试文件夹,是无法调用到这个conftest.py文件中的Fixture。
C、测试框架根目录和子包中都有conftest.py文件,并且这两个conftest.py文件中都有一个同名的Fixture,实际生效的是测试框架中子包目录下的conftest.py文件中配置的Fixture。
D、一个用例可以添加多个conftest.py文件中定义的Fixture夹具。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...