前言

这是一个pytest第三方插件,主要解决用例之间的依赖关系。如果依赖的上下文失败后续的用例会被标识为跳过执行,相当于执行了pytest.mark.skip
dependency可作用的范围有:sessionpackagemoduleclass
安装pip install pytest-dependency
官方示例:pytest-dependency

基本用法

下面的实现方式是简单的实现,高级用法可以查看官方文档
以下方式是在TestCase类下面编写的用例
首先我们需要在用例开始的位置打上一个装饰器@pytest.mark.dependency(),这是代表这条用例作为主条件,如果这条用例失败,关联它的用例会跳过执行。
在被关联的用例上,也打上带参数的装饰器@pytest.mark.dependency()depends接受的参数是关联的依赖用例名。
depends也可以用别名的方式指定用例名。

Test类下实现方式

Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客
Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客

函数下实现方式

Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客

通过别名指定方式

Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客

定义依赖范围

官方api详解

我们可以看到scope可接受四种参数定义的类型(’session’,’package’,’module’或’class’)
Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客

scope=’class’

作用于所属的类,外部类不会被关联

Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客

Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客

scope=’module’

不传递scope,默认参数是’module’,作用于当前文件
只会查找当前文件的符合条件的文件名,类里同名的方法不会被依赖

Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客
Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客

scope=’package’

作用于当前目录同级的依赖函数,跨目录无法找到依赖的函数。

Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客
Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客

scope=’session’

作用域全局,可跨目录调用。但被依赖的用例必须先执行,如例子中的test01,否则用例会执行跳过!!!!

Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客
Pytest系列 -pytest-dependency 用例依赖-风君雪科技博客