pytest自动化测试一:pytest的运行方式

当我们在执行pytest的时候,可以指定参数,也可以不指定参数

一、如果不提供任何参数,那么pytest会在当前目录及子目录下寻找以test_开头或者以_test结尾的测试文件,且该文件中以test_开头或者_test开头结尾的测试函数
pytest自动化测试一:pytest的运行方式

从图中我们可以看出,测试文件只有以test_开头或者以_test结尾的测试文件才会被执行,图中有5个测试文件,但是从执行结果可以看出只执行了4个文件,这4个文件的特点就是test_开头或者_test结尾的文件
二、当我们指定文件的时候,文件里面的函数又是怎么执行的呢?
pytest自动化测试一:pytest的运行方式
A.当运行时指定测试文件的时候,此时目录一定要切换到允许的测试文件所在的目录,比如允许test_one.py,那该测试文件所在的目录即使ch1,切换到该目录后执行pytest test_one.py ,否则pytest搜索不到测试,不会执行.
B.执行测试文件里的函数的时候,会搜索以test_开头的测试函数执行,不符合此规则的函数不会被执行,上图中有2个函数符合此规则被执行,另一个count函数不会被执行
C.如果含有测试类,那么允许该测试文件时,会搜索类名以Test开头的类,执行下面的测试函数

pytest自动化测试一:pytest的运行方式

可以看到测试类以Test开头时,运行pytest时会被执行,且该测试类中的函数命名也必须符合要求才会被执行,该例中就只执行了2个测试函数,因为有一个不符合命名规则
三、当一个测试类中含有多个测试用例,而又只需要运行一个测试用例时,又该如何处理呢
遇到此种情况,可按照如下格式处理,在测试文件后面添加::类名:函数名
pytest自动化测试一:pytest的运行方式
按照测试文件,测试类,测试方法依次去寻找,切记,如果方法在测试类里面,要执行类里面的函数,必须按照上面所写,否则报错