首页 > 其他分享 >Pytest - Fixture(12) - 配置文件conftest.py

Pytest - Fixture(12) - 配置文件conftest.py

时间:2023-05-31 18:01:27浏览次数:39  
标签:12 配置文件 py fixture conftest pytest 测试用例

Pytest - 配置文件 - conftest.py

前言

  • 如果在多个测试文件中的用到相同的 fixture函数,则可以将其移动到 conftest.py 文件中

  • conftest.py 是专门存放 fixture 的配置文件;

    • 例如:如果测试用例都需要进行用户登录的时候,仅需将登录的功能放到conftest.py 文件中,而不需要在每个用例中实现;

    • 例如:每次测试完成后都需要关闭浏览器窗口,仅需将关闭的动作放到conftest.py 文件中,而不需要在每个用例中实现;


注意事项

  • conftest.py 文件名称是固定的,不能变更;

  • conftest.py 只对同一个 目录下的所有测试用例生效,包含当前目录下——子目录中的测试用例;

  • 不同目录可以有自己的 conftest.py,一个项目中可以有多个 conftest.py

  • pytest 会默认读取 conftest.py 里面的所有 fixture ;即不需要手动 import conftest,pytest运行后会自动查找;


实际栗子

  • 目录结构:

    Project/
    	├── conftest.py		(fixture配置文件)
    	├── test_py.py		(测试用例脚本)	
    

    image-20230531174002085


  • 配置文件conftest.py 代码:

    # conftest.py
    import pytest
    
    @pytest.fixture(autouse=True)
    def con_login():
        print('\n==这是在conftest.py文件中的fixture,会自动运行==')
    
    @pytest.fixture
    def con_quit():
        print('==这是在conftest.py文件中的fixture,需要用例中手动引用==')
    

  • 测试用例test_py.py代码:

    # test_py.py
    import pytest
    
    # 手动引用conftest.py文件中的fixture
    def test_s1(con_quit):
        print("\n**测试用例 s1:手动引用fixture**")
    
    def test_s2():
        print("\n**测试用例 s2**")
    
    if __name__ == '__main__':
        pytest.main(['-q', 'test_py.py'])
    

  • 运行后的输出:

    image-20230531173857874


标签:12,配置文件,py,fixture,conftest,pytest,测试用例
From: https://www.cnblogs.com/mzline/p/17446914.html

相关文章

  • 基于multiprocessing map实现python并行化(全局变量共享 map机制实用向分析 常见问题 p
    转载:(15条消息)基于multiprocessingmap实现python并行化(全局变量共享map机制实用向分析常见问题pandas存储数据)_goto_past的博客-CSDN博客基于multiprocessingmap实现python并行化之前从来没考虑python可以并行化,最近有一个项目需要计算100*100次的遗传算法适应度,每次计算......
  • 【python】证件照更换背景颜色
    1、介绍本文使用u2net,pillow,及backgroundremover进行照片背景的替换 2、安装pipinstallpillowpipinstallbackgroundremover 3、u2net介绍https://github.com/xuebinqin/U-2-NetCSDN镜像地址(可能不是最新)https://gitcode.net/mirrors/xuebinqin/U-2-Net?utm......
  • POJ1228(稳定凸包问题)
    题目:Grandpa'sEstate题意:输入一个凸包上的点(没有凸包内部的点,要么是凸包顶点,要么是凸包边上的点),判断这个凸包是否稳定。所谓稳定就是判断能不能在原有凸包上加点,得到一个更大的凸包,并且这个凸包包含原有凸包上的所有点。分析:容易知道,当一个凸包稳定时,凸包的每条边上都要有至少三个......
  • NJUST1712(形成三角形面积为整数的个数)
    题目:1712-Triangles 题意:给定三角形的三点,分别是A,B,C,它们的横纵坐标都属于整数,然后给定两个数n和m。要求满足:, 和这3个条件的三角形个数,并且对1000000007取余。 分析:由于用的是坐标,那么我们很容易想到用叉积来表示面积,那么就得到:   然后就可以很明显知道:与一奇一偶。 然......
  • Python基础之函数的参数以及名称空间
    函数的参数形式参数什么是形式参数:在'函数定义阶段'括号内依次写入的变量名就叫形式参数,简称"形参" defindex(a,b,c,d,e):pass#a,b就称之为是函数的形参1、位置形参位置形参 在函数'定义阶段'括号内从'左往右依次'写入的'变量名'就是位置形参......
  • Python基础之装饰器
    装饰器1、为什么要用装饰器1.1、为程序提供扩展功能的可能性1.2、要遵循开放封闭原则1.3、禁止修改原代码,但是可以新增功能1.4、也不能修改调用方式2、什么是装饰器2.1为被装饰对象添加新功能的工具2.2、不修改被装饰对象源代码和调用方式3、装饰器的核心思想3......
  • Python之作用域
    作用域、函数对象和闭包作用域1、全局作用域内置名称空间+全局名称空间全局存货全局有效2、局部作用域局部名称空间局部存活局部有效3、global关键字作用: 声明全局变量###########################global"""在函数的内部不能直接修改外部的变量......
  • python基础15
    递归函数什么是递归函数递归就是直接或者间接调用自己的函数就是递归函数1#练习题2l=[1,[2,[3,[4,[5,[6,[7,[8]]]]]]]34defindex(l):5foriinl:6iftype(i)isint:7print(i)8else:9index(i)算法之......
  • Pycharm自定义代码片段
    编写自定义代码片段可以避免编写很多重复的东西;下文以PyCharm2023.1.2为例(已安装Chinese插件);打开设置,参考下图1,2,3,4,5顺序点击菜单;看到如下页面;输入编写,描述,模板文本;点击定义按钮,会显示一个弹窗,选择语言环境,点击除内容区的空白处关闭并保......
  • python版本的“共轭梯度法”算法代码
    在看代码的过程中遇到了共轭梯度法这个概念,对这个算法的数学解释看过几遍,推导看过了,感觉懂了,然后过上一些日子就又忘记了,然后又看了一遍推导,然后过了一些日子也就又忘记了,最后想想这个算法的数学解释就不要再取深究了,毕竟平时也不太会用到,偶尔用到了只要保证代码会写也就OK了。 ......