运行测试子集有多种方式, 不但可以运行某个目录,文件,类中的测试, 还可以选择运行
某一个测试用例.
1.单个目录
我们想运行目录 chapter01 下边的所有的case 怎么做到呢, 如图
方法: 直接运行目录即可, 把目录的路径当做pytest的参数 . 运行结果如下:
我先进入 D 盘然后 用语句 pytest chapter01 --tb=no 语句 .
看到截图文件都被运行了.
2.运行单个文件
运行单个文件里的全部测试,以路径名 加文件名作为pytest参数即可.
举个例子 我想运行 :D:\chapter01\task02\test_01.py 怎么办呢
直接用语句 pytest D:\chapter01\task02\test_01.py 即可 .
里面的函数,全部被执行到了. test_01,test_02,test_03,test_04
3.运行单个测试函数
语法: 只需要在文件名后面添加 :: 和函数名 即可 .
我们要执行
D:\chapter01\task02\test_01.py 里的 test_01 函数
可以用 pytest D:\chapter01\task02\test_01.py::test_01
4.运行测试类
实际 和运行单个函数的原理是一样,系统认为 类是个多个函数的集合,实际把他也当成了函数处理.
我们把多个函数 封装到一个类里执行,看看是否能成功?
我们用语句 pytest D:\chapter01\task01\test_run01.py::Test_task01 执行效果如下:
5.运行测试类中的函数
在运行测试类基础上 再 加上 :: 和 函数名字,如图:
6.用测试名划分测试集合
-k 选项 前面我也讲了,这次再应用下,加深印象.
这个选项意义在于,
它会拿 - k 选项的value 和 测试函数或者测试文件或者测试类的名字去匹配,调用 in 函数,返回true 就执行,
这些 不能突出 pytest优秀的品质,请看下边的
表达式里还可以 用 and, or ,not 关系连接词.
用 -k _01 的运行结果如下:
如果不想运行 包含 _02 可以用这个试试,
如果想运行 _01 和 __02 可以用 or 语句 , 自己尝试下, 难不住我们的优秀聪慧的小伙伴.