1. 开始
pytest配置文件可以改变pytest的默认运行方式,它是一个固定的文件名称pytest.ini。
pytest.ini存放路径为项目的根路径。
2. 使用addopts-追加默认参数
我们每次在命令行中执行pytest命令时,如果参数是固定的,可以在pytest.ini进行配置,减少繁琐的操作。
pytest在运行时,会自动读取pytest.ini中配置的参数。
例如:
[pytest]
addopts =
--reruns=2
-p no:faulthandler
-s
--cache-clear
--capture=sys
也可以将参数使用空格隔开。
[pytest]
addopts = --reruns=2 -p no:faulthandler -s --cache-clear --capture=sys
3. 命令行参数 优先级 大于 pytest.ini的参数
当配置文件的参数与命令文件的参数重复时,命令行的参数值会覆盖配置文件中定义的参数值。、
比如下图,命令行参数值为1,pytest.ini参数值为2,实际执行的参数值为1。
4. testpaths-指定测试用例搜索目录
testpaths用于指定测试用例的搜索目录,可以指定一个或多个目录,多个目录需要用空格隔开或者换行。
[pytest]
testpaths = ./test_case01 ./test_case02
[pytest]
testpaths =
./test_case01
./test_case02
5. python_files & python_classes & python_functions 修改pytest默认搜索用例的规则
pytest 默认的用例匹配规则:
- 测试模块必须以 test_ 开头或以 _test 结尾
- 测试类必须以 Test 开头,且不能有 init()
- 测试方法必须以 test_ 开头
pytest.ini配置文件可以使用python_files、python_calsses、python_functions修改默认的用例匹配规则。
- 使用python_files可以自定义测试模块的匹配规则
- 使用python_classes可以自定义测试类的匹配规则
- 使用python_functions可以自定义测试方法的匹配规则
注意:上面3个配置项支持多个匹配规则,多个匹配规则用空格隔开或者换行。
接下来,我们可以来添加自己的匹配规则:
- 添加
gitlink*.py
开头的测试模块 - 添加
GitLink*
开头的测试类 - 添加
gitlink*
开头的测试方法
[pytest]
# 配置搜索的模块文件名称。匹配以test开头py结尾的文件
python_files = gitlink*.py
# 配置搜索的测试类名
python_classes = Gitlink*
# 配置搜索的测试方法名
python_functions = gitlink*
命令行输入:pytest -vs
运行结果如下:
6. markers-注册mark标记
当我们使用 @pytest.mark.标记名称 时,如果使用的自定义标记,当在执行用例追加参数 -m=标记名称 时,虽然不会影响测试执行,但是在执行后会出现告警提示:PytestUnknownMarkWarning: Unknown pytest.mark.smoke
。
我们需要在pytest.ini配置文件增加 markers 字段注册自定义标记。
[pytest]
# 注册标记名称
markers =
smoke: 冒烟测试用例
normal: 正常用例
添加后,使用pytest --markers
可以查看到我们添加的标记名称。
然后我们再次使用命令pytest -m=smoke
就不会有告警提示啦~