pytest自动化的配置文件
1、pytest.ini:pytest的主配置文件,可以改变pytest的默认行为,有很多可配置的选项;
Markers 的作用是注册标记,防止拼写错误;
testpaths指示pytest去哪里访问。testpaths是一系列相对于根目录的路径,用于限定测试用例的搜索范围。只有pytest未指定文件目录参数或测试用例标识符时,该选项才有作用;
addopts:pytest用命令行运行时,有时候需要经常要用到某些参数,又不想重复输入,这时可以使用pytest.ini文件的addopts设置;
2、__init__.py:每个测试子目录都包含该文件时,那么在多个测试目录中可以出现同名测试文件,作用:标识该目录下的py文件为module package;
3、conftest.py:是本地的插件库,conftest.py是固定名称,pytest会自动找到该文件,并读取里面的数据,其中的hook函数和fixture将作用于该文件所在的目录以及所有的子目录,作用:实现数据、代码等共享;
如:在conftest中自定义pytest框架的前后置函数,作用于该目录下以及子目录下的所有测试用例;
作用域:
function(测试用例)> class(测试类) > module(测试模块) > session(会话)
特性:
1)前后置函数的名称是自定义的,前置、后置是都放在一个函数中,使用关键字yield关键字区分前后置;如:
2)这个前后置函数是独立的,不与测试类放在一起;
3)作用域:测试函数、测试类、测试模块、session;
4)在测试用例中调用这个自定义的前后置函数时,有两种情况:
情况一:
在需要调用的测试模块、测试类、测试函数前加 @pytest.mark.usefixture(‘自定义的fixture函数名称’),且不需要调用返回值;如:
@pytest.mark.usefixture('自定义的fixture函数名称')
def test_login(self):
pass
情况二:
测试模块、测试类、测试用例函数需要调用这个自定义前后置函数的返回值,则需要把fixture函数名称作为测试用例参数;如:
方法一:在需要调用的测试模块、测试类、测试函数前加 @pytest.mark.usefixture(),自定义的fixture函数名称作为测试用例函数的参数,如:
@pytest.mark.usefixture()
def test_login(self, '自定义的fixture函数名称'):
pass
方法二:直接在测试用于函数里加 ‘ 自定义的fixture函数名称 ’ 作为参数, 如: