前言:pytest.ini全局配置文件,是pytest单元测试框架的核心配置文件,pytest.ini 可以改变 pytest 的默认行为
格式一般是固定的,建议将中文删掉:
[pytest]
;命令行参数,用空格进行分隔
addopts = -vs
;注册 mark 标记
markers =
demo : marks tests as demo
smoke: marks tests as smoke
uat : marks tests as uat
test : marks tests as test
;测试用例的路径,可自己配置,
;../pytestproject为上一层的pytestproject文件夹
;./testcase为pytest.ini当前目录下的同级文件夹
testpaths =./testcase
;模块名的规则,配置测试搜索的模块文件名称
python_files = test*.py
;类名的规则,配置测试搜索的测试类名
python_classes = Test*
;方法名的规则,配置测试搜索的测试函数名
python_functions = test
我们在编写自动化测试用例时,会有各种类型的场景用例,我们又不想一次性运行全部,只想运行其中的几个,这时我们可以借助mark标签来管理测试用例,mark标签是任意取的,但是要避开Python和pytest关键字,运行标签用 - m 来运行,如:pytest -m login
pytest.ini的mark标签配置示例(markers名称不可修改,里面的标签可自定义):
markers =
demo : marks tests as demo
smoke: marks tests as smoke
uat : marks tests as uat
test : marks tests as test
login:marks login cases as test
然后在需要被标记的用例上加上@pytest.mark.xxx(xxx为标记的名称,比如@pytest.mark.login)
@pytest.mark.login
def test_login(self):
u"""登录操作"""
login_result = Login(self.driver).login_from_anli_pwd(normal_account, normal_password)
assert login_result == "登录成功"
最后运行pytest -m login即可执行标记了标签的所有用例
1)pytest默认是搜索执行当前目录下的所有以test_开头的测试用例;我们可以在pytest.ini配置testpaths = test_case/test_001.py,则只执行当前配置的文件夹下或文件里的指定用例
2)可配置多个,空格隔开:python_files = test_.py haha_.py
由于已经在pytest.int中配置了运行规则,所以在主函数中就不需要重复配置,只需要执行pytest.main()即可
一般把执行的主函数文件,也放在根目录下,如图: