python pytest进阶之conftest.py详解


Posted in Python onJune 27, 2019

前言

前面几篇文章基本上已经了解了pytest 命令使用,收集用例,finxture使用及作用范围,今天简单介绍一下conftest.py文件的作用和实际项目中如是使用此文件!

实例场景

首先们思考这样一个问题:如果我们在编写测试用的时候,每一个测试文件里面的用例都需要先登录后才能完成后面的操作,那么们该如何实现呢?这就需要我们掌握conftest.py文件的使用了。

实例代码

创建如下一个目录

ConftestFile
|conftest.py
|test_file_01.py
|test_file_02.py
|__init__.py
# conftest.py
import pytest
@pytest.fixture()
def login():

print('\n---------------conftest文件login方法开始执行----------------------------')

print('login in conftest.py')

print('----------------conftest.py文件login方法执行结束---------------------------')
# test_file_01.py
def test_01(login):

print('\n------------------用例文件1测试用例1开始执行------------------')

print('login after : in test_file_01->case test_01')

print('-------------------用例文件1测试用例1执行结束------------------------')
# test_file_02.py
def test_02(login):

print('\n------------------用例文件2测试用例2开始执行------------------')

print('login after : in test_file_01->case test_01')

print('-------------------用例文件2测试用例2执行结束------------------------')

我们先来运行一下这个实例代码看看输出结果

1.在pycharm可以右键目录运行

2.可以在cmd目录中输入 pytest -vs 来运行

test_file_01.py 
---------------conftest文件login方法开始执行----------------------------
login in conftest.py
----------------conftest.py文件login方法执行结束---------------------------
.
------------------用例文件1测试用例1开始执行------------------
login after : in test_file_01->case test_01
-------------------用例文件1测试用例1执行结束------------------------
[ 50%]
test_file_02.py 
---------------conftest文件login方法开始执行----------------------------
login in conftest.py
----------------conftest.py文件login方法执行结束---------------------------
.
------------------用例文件2测试用例2开始执行------------------
login after : in test_file_01->case test_01
-------------------用例文件2测试用例2执行结束------------------------
[100%]
========================== 2 passed in 0.04 seconds ===========================

可以看到每个测试文件的测试用例执行前都执行了conftest.py文件中的login方法,通过这种模式我们就可以实现测试用例前置条件的准备工作了!

conftest文件实际应用中需要结合fixture来使用,那么fixture中参数scope也适用conftest中fixture的特性,这里再说明一下

1.conftest中fixture的scope参数为session,那么所有的测试文件执行前执行一次

2.conftest中fixture的scope参数为module,那么每一个测试文件执行前都会执行一次conftest文件中的fixture

3.conftest中fixture的scope参数为class,那么每一个测试文件中的测试类执行前都会执行一次conftest文件中的fixture

4.conftest中fixture的scope参数为function,那么所有文件的测试用例执行前都会执行一次conftest文件中的fixture

总结

理论往往都需要实践的验证,所以要想掌握conftest具体的使用,还需要多加使用代码验证!我上面的代码只是验证了测试文件中测试函数使用conftest.py,实际工作中不仅仅只有函数使用,也往往不仅存在一个conftest.py文件。下面是我总结的特性,希望对大家有帮助吧!

1.conftest.py文件名字是固定的,不可以做任何修改

2.文件和用例文件在同一个目录下,那么conftest.py作用于整个目录

3.conftest.py文件所在目录必须存在__init__.py文件

4.conftest.py文件不能被其他文件导入

5.所有同目录测试文件运行前都会执行conftest.py文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python线程中对join方法的运用的教程
Apr 09 Python
浅述python中argsort()函数的实例用法
Mar 30 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
python学生管理系统
Jan 30 Python
django如何自己创建一个中间件
Jul 24 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
用python实现前向分词最大匹配算法的示例代码
Aug 06 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 Python
Docker如何部署Python项目的实现详解
Oct 26 Python
Python超详细分步解析随机漫步
Mar 17 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 #Python
python pytest进阶之fixture详解
Jun 27 #Python
解决pycharm 远程调试 上传 helpers 卡住的问题
Jun 27 #Python
python中pytest收集用例规则与运行指定用例详解
Jun 27 #Python
python取余运算符知识点详解
Jun 27 #Python
如何运行.ipynb文件的图文讲解
Jun 27 #Python
python的pytest框架之命令行参数详解(下)
Jun 27 #Python
You might like
Destoon实现多表查询示例
2014/08/21 PHP
php+mysql数据库查询实例
2015/01/21 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
PHP单例模式详细介绍
2015/07/01 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
PHP的PDO连接讲解
2019/01/24 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
javascript 对象的定义方法
2007/01/10 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Python关于反射的实例代码分享
2020/02/20 Python
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
创业计划书如何编写
2014/02/06 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python