首页 > 其他分享 >conftest.py文件【控制用例的执行顺序3】

conftest.py文件【控制用例的执行顺序3】

时间:2022-10-16 00:33:08浏览次数:65  
标签:文件 py print 用例 conftest pytest test

fixture scope为session级别是可以跨.py模块调用的,也就是当我们有多个.py文件的用例时,如果多个用例只需要调用一次fixture,可以将scope="session",并且写到conftest.py文件里。写到conftest.py文件可以全局调用这里面的方法。使用的时候不需要导入conftest.py整个文件。conftest.py文件的使用规则
1.conftest.py这个文件名是固定的,不可以更改。
2.conftest.py与运行用例在同一个包下,并且该包中有__init__.py文件
3.使用的时候不需要导入conftest.py,pytest会自动识别到这个文件
4.放到项目的根目录下可以全局调用,放到某个package下,就在这个package内有效

1.实例

在运行这个项目下的所有用例,只执行一次打开浏览器。执行完所有的用例之后在执行关闭浏览器,可以在这个项目下创建一个conftest.py文件,将打开浏览器操作的方法放在这个文件下,并添加一个装饰器@pytest.fixture(scope="session"),就能实现这个项目所有测试用例的浏览器复用,实例目录结构如下:

1.1conftest.py文件

conftest文件定义了公共方法,pytest会自动读取conftest.py定义的方法

import pytest

@pytest.fixture(scope="session")
def open():
    print("打开浏览器")
    yield

    print("执行teardown !")
    print("最后关闭浏览器")
1.2test_scope1.py文件
import pytest

def test_search1(open):
    print("test_search1")
    pass
def test_search2(open):
    print("test_search2")
    pass

def test_search3(open):
    print("test_search3")
    pass

if __name__ =="__main__":
    pytest.main()
1.3test_scope2.py文件
class TestFunc():
    def test_case1(self):
        print("test_case1,需要登录")
    def test_case2(self):
        print("test_case2,不需要登录")
    def test_case3(self):
        print("test_case3,需要登录")
1.4执行结果

打开cmd,进入到test_scope/,执行如下命令:
pytest -vs 或着 pytest -v -s test_scope1.py test_scope2.py
执行结果:

标签:文件,py,print,用例,conftest,pytest,test
From: https://www.cnblogs.com/lcc-lv/p/16795453.html

相关文章

  • pytest fixtures[控制用例的执行顺序2]
    pytest可以使用@pytest.fixture装饰器来装饰一个方法,被装饰的方法名可以作为一个参数传入到测试方法中。可以使用这种方法来完成测试之前的初始化,也可以返回数据给测试函数......
  • 《流畅的Python第二版》读书笔记——函数作为一等对象
    引言这是《流畅的Python第二版》抢先版的读书笔记。Python版本暂时用的是python3.10。为了使开发更简单、快捷,本文使用了JupyterLab。函数是Python的一等(first-class)对象......
  • 实战 | 用Python和MediaPipe搭建一个嗜睡检测系统 (详细步骤 + 源码)
    导读本文将使用Python和MediaPipe搭建一个嗜睡检测系统(包含详细步骤+源码)。背景介绍   疲劳驾驶的危害不堪设想,据了解,21%的交通事故都因此而生,尤其是高速路上,大多......
  • 实战 | 用Python和OpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)
    导读     本文将使用Python、OpenCV和MediaPipe搭建一个老人跌倒智能监测系统。背景介绍   老人监测系统是一种智能检测系统,可以检测老人是否躺在床上或是否跌倒......
  • pip安装pyqt5-tools的时候Preparing metadata (pyproject.toml) error
    遇到了,未解决,在这里卡主了python版本3.10.5 python3.10上安装pyqt5_染指13的博客-CSDN博客_python安装pyqt5解决办法(有人说要降级Python3.9啥的,或者降pyqt5的版本,我......
  • python 模块导入
    1.模块导入模块在使用前需要先导入,导入语法如下:[from模块名]import[模块|类|变量|函数|*][as别名]常用的组合形式如:import模块名from模块名import......
  • python精灵模块示例代码
    精灵模块是一个基于pygame的游戏模块,可以让我们使用python时轻松实现动画效果和游戏,下面给出一些例子:背景化身弹球.rar:https://url18.ctfile.com/f/7715018-694756249-4ee......
  • Python程序员常犯的编码错误(一)
    1.引言在常见的编程语言中,通常有多种方法来实现同一个解决方案。如下:在本文中,我将向大家介绍五个Python程序员在不知不觉中陷入编写非优雅、复杂的Pythone代码的陷阱的具......
  • python学习——爬取数据到excel
    python的学习直接使用网页爬虫,将内容爬取到excel,也是为之后的大数据学习做铺垫。下面的代码是我爬取的豆瓣电影Top250的电影基本信息,当然,也可以爬取到数据库中#-*-cod......
  • Pytest插件pytest-order指定用例顺序
    Pytest插件pytest-order指定用例顺序安装 pipinstallpytest-order注意不是pytest-ordering说起来这里有个故事 关于pytest-ordering和pytest-orderhttps......