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使用点操作符访问字典(dict)数据的方法
Mar 16 Python
两个命令把 Vim 打造成 Python IDE的方法
Mar 20 Python
python中列表和元组的区别
Dec 18 Python
python3 拼接字符串的7种方法
Sep 12 Python
python解析含有重复key的json方法
Jan 22 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
PyQt5实现简单的计算器
May 30 Python
python中的django是做什么的
Jul 31 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
使用pipenv管理python虚拟环境的全过程
Sep 25 Python
Python OpenCV之常用滤波器使用详解
Apr 07 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
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
利用php生成验证码
2017/02/23 PHP
mongodb和php的用法详解
2019/03/25 PHP
JS调用CS里的带参方法实例
2013/08/01 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
Python异常处理总结
2014/08/15 Python
利用python实现周期财务统计可视化
2019/08/25 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
如何使用python写截屏小工具
2020/09/29 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
CSS3 RGBA色彩模式使用实例讲解
2016/04/26 HTML / CSS
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
英国电子专家:maplin
2019/09/04 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
旅游业大学生创业计划书
2014/01/31 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
大学学生个人总结
2015/02/15 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android
python中pycryto实现数据加密
2022/04/29 Python