之前一直知道各个作用域,class、module、package、session,具体的针对各个作用域的词应用到实际的项目目录中是指那些,还是有一些模糊,直到,今天学习了@pytest.mark.dependency()的用法才有了一个具体的概念 1、一个class就是指当前定义内的一个类,通过间隔和缩进判断,一个类的起点和结束位置,如下图:
2、一个module就是一个xx.py文件,一个py文件内部可以定义很多个类和方法,py文件的名称与类和方法名称没有关系,可以在一个模块中定义很多个方法和类,但是在另外一个.py文件中使用时,需要用模块名.方法名,或者模块名.类名的方式引用,如下图 3、一个package就是一个python包,在pycharm中显示为一个圈,创建一个package时,自动会在包下创建一个__init__.py文件,内容为空,可以写一些定义,也可以直接为空, 但是执行包内的test_xx.py文件时,默认会首先先执行包内的__init__.py,如下图: 4、最后就是一个session,默认情况下是指一个整个项目,可以直接在一个包上一次执行pytest in packageName,也可以自己在整个项目上执行,如下图:
@pytest.mark.dependency()用法
其实之前学习过testng等框架,基本都是测试用例的依赖关系都是只需要在依赖函数上写一个说明就行了,但是在pytest中,既要在依赖函数上标记,又要在被依赖的函数上标记,确实不一样,这点有点意外,不过pytest这样设备确实还是很强大,毕竟要照顾到各个作用域的依赖关系,下面就来了解一下它的用法: 这是一个pytest第三方插件,主要解决用例之间的依赖关系。如果依赖的上下文失败后续的用例会被标识为跳过执行,相当于执行了pytest.mark.skip dependency可作用的范围有:session、package、module、class
默认情况下@pytest.mark.dependency()内部的参数有三个,name、scope、denpens 不传递scope,默认参数是’module’,作用于当前文件,这个也是最常见的,我们只需要这个依赖关系在当前的py文件中不重名,就可以正常使用,后续再详细介绍
|