pytest-05-fixture之conftest.py配置文
2020-12-04 本文已影响0人
恶毒女配的日常
学习本篇是目的是自定义测试用例的预置条件
fixture对于setup和teardown的优势如下:
(1)命名方式灵活,不局限于setup和teardown这几个命名
(2)conftest.py配置里面可以实现数据共享,无需import导入,能自动找到一些配置
(3)scope="module"可以实现多个.py跨文件共享前置,每一个.py文件调用一次
(4)scope="session"以实现多个.py跨文件使用一个session来完成多个用例
![](https://img.haomeiwen.com/i5726219/1e1afd7ecea884d5.png)
![](https://img.haomeiwen.com/i5726219/d01f6abcd50393a6.png)
使用装饰器带参数或不带参数定义fixture,会在运行测试之前调用fixture
scop有四个级别参数 "function" (默认,针对函数有效), "class","module","session"
autouse默认false,需要参考激活fixture;如果为true,所有测试激活fixture func才能看到
name默认装饰函数名称,如果fixture在定义它的同一模块中使用,夹具的功能名称将被请求夹具的功能遮蔽;
解决这个问题的一种方法是将装饰函数命名为:
"fixture_ <fixturename>"然后使用"@ pytest.fixture(name ='<fixturename>')"
![](https://img.haomeiwen.com/i5726219/5343e43af02d60ff.png)
多个文件调用一个功能,使用conftest.py配置文件,来单独管理一些预置的操作场景,pytest默认读取配置文件里面的配置。
注意:
conftest.py 配置文件名称固定,不能修改
conftest.py 配置文件与运行的用例在一个pakage下,且包含__ini__.py文件
无需导入conftest.py ,pytest自动查找
![](https://img.haomeiwen.com/i5726219/89f8de113fa8cce1.png)
![](https://img.haomeiwen.com/i5726219/7e72dff03bc8230d.png)
![](https://img.haomeiwen.com/i5726219/ae032ff8e990a1a1.png)
![](https://img.haomeiwen.com/i5726219/0c465e8bfba44ba0.png)
执行结果如下:
![](https://img.haomeiwen.com/i5726219/b4d0b6071cb96e3c.png)