一、前言
pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行
二、ini配置文件
pytest里面有些文件是非test文件
-
pytest.ini pytest的主配置文件,可以改变pytest的默认行为
-
conftest.py 测试用例的一些fixture配置
-
_init_.py 识别该文件夹为python的package包
-
tox.ini 与pytest.ini类似,用tox工具时候才有用
-
setup.cfg 也是ini格式文件,影响setup.py的行为
ini文件基本格式
# 保存为pytest.ini文件
[pytest]
addopts = -rsxX
xfail_strict = ture
使用pytest —help指令可以查看pytest.ini的设置选项
[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found:
markers (linelist) markers for test functions
empty_parameter_set_mark (string) default marker for empty parametersets
norecursedirs (args) directory patterns to avoid for recursion
testpaths (args) directories to search for tests when no files or dire
console_output_style (string) console output: classic or with additional progr
usefixtures (args) list of default fixtures to be used with this project
python_files (args) glob-style file patterns for Python test module disco
python_classes (args) prefixes or glob names for Python test class discover
python_functions (args) prefixes or glob names for Python test function and m
xfail_strict (bool) default for the strict parameter of
addopts (args) extra command line options
minversion (string) minimally required pytest version
—rsxX 表示pytest报告所有测试用例被跳过、预计失败、预计失败但实际被通过的原因
三、mark标记
如下案例,使用了2个标签:webtest和hello,使用mark标记功能对于以后分类测试非常有用处
# content of test_mark.py
import pytest
@pytest.mark.webtest
def test_send_http():
print("mark web test")
def test_something_quick():
pass
def test_another():
pass
@pytest.mark.hello
class TestClass:
def test_01(self):
print("hello :")
def test_02(self):
print("hello world!")
if __name__ == "__main__":
pytest.main(["-v", "test_mark.py", "-m=hello"])
运行结果
======