pytest快速入门(3)--fixrture的共享和嵌套

一、fixture的共享机制

conftest.py模块主要用于定义各种fixture,其中的fixtures可以被外部的测试用例进行调用,从而实现conftest.py中的fixture被共享。

1、共享的范围

conftest.py模块所在目录下的(包含其子目录)测试用例均可以调用该模块中定义的fixture。

【实例】

(1)目录结构

 (2)测试用例

2、共享的优先级

在实际应用中,我们可能在不同的package中定义多个conftest.py文件,此时测试用例中调用fixture的原则为:就近原则

即优先级别为:测试用例所在模块定义的fixture  >>  测试用例所在目录下的conftest.py  >> 测试用例所在目录的父目录下的conftest.py

二、fixture的嵌套

fixture的嵌套类似于类的继承关系。

1、什么时候使用fixture的嵌套?

A:新定义的fixture想完全使用另一个fixture,并且在其基础上新增一些操作。

2、如何实现嵌套? -- fix2中嵌套fix1

1 @pytest.fixture
2 def fix1():
3     pass
4 
5 @pytest.fixture
6 def fix2(fix1):
7     新增加的代码
8     pass

3、嵌套fixture的执行顺序? -- 以上述嵌套为例进行说明

fix1的前置

fix2的前置

fix2的后置

fix1的后置

4、可以将任意级别的fixture进行嵌套吗?

不能,根据嵌套fixture的执行顺序,fix1的级别 >= fix2的级别。

原文地址:https://www.cnblogs.com/yif930916/p/14790339.html