一、命名要求
- 模块(py文件)一般以test_开头
- pytest的测试集(类)必须以Test_开头
- 用例(方法,可以单独定义,不在类中)必须以test_开头
也可以以_test结尾
二、运行程序pytest
1.在终端运行
-
在需要运行的py文件中右击空白处,如下图,点击open in terminal
-
输入pytest py文件全称
1.1在终端运行的方法
- pytest 文件名.py
- pytest 文件名.py::类名
- pytest 文件名.py::类名::方法名
前面可以加参数
1.2在终端运行的基本参数
参数名 | 含义 |
---|---|
不带参数执行 | pytest,将会读取当前路径下所有符合规则的文件,类,方法,函数全部执行 |
-v | 打印详细运行的日志信息,方便定位问题 |
-s | 可以在控制台输出结果,当代码中有用到print语句输出信息时,不加这个参数的话,控制台是不会显示print的内容的 |
-k | 使用该参数可以指定运行满足要求的用例(在当前目录下查看所有test开头的py文件中是否有符合要求的) |
k 参数使用详情:不能在pytest.main中加k参数
- pytest -k "类名"
- pytest -k "方法名"
- pytest -k "类名 and not 方法名"
2.在py文件中运行
打开【file】——【settings】,看下图设置pytest与Unittest运行方法
三、断言
pytest可以直接使用Python内置断言assert
- assert * is *
- assert * == *
- assert * in *
其实就assert加表达式,表达式正确就通过,否则失败
四、html报告
1.安装pytest-html
pip install pytest-html
2.使用
import pytest
if __name__ == '__main__':
#运行全部
pytest.main(['-s', '-v', '--html=report.html'])
#可以运行指定运行单个py,或者,单个类,或者单个方法,如下:
#pytest.main(['-s', '-v', 'test_pytest.py::Test_suit::test_case1','--html=report.html'])
3.注意
- 生成html的文件必须要要和主文件分开做一个py文件
- 这种方法我在终端不能生成html