1. pytest.ini文件的作用
pytest.ini是Pytest测试框架的配置文件,用于配置框架的行为和参数。通过编辑pytest.ini文件,可以对Pytest测试运行进行自定义设置,从而更好地满足测试需求。在项目开发过程中,可以根据实际情况修改pytest.ini文件,以便灵活控制测试环境、结果输出、插件设置等。
2. 编写pytest.ini文件
2.1 指定测试文件和目录
Pytest默认会自动收集当前目录下以test_开头或以_test结尾的文件,也会递归搜索以test_开头或以_test结尾的目录。如果需要指定特定文件或目录进行测试,可以在pytest.ini文件中进行配置。
要指定测试文件,可以使用addopts
选项,如下所示:
[pytest]
addopts = test_file.py
要指定测试目录,可以使用testpaths
选项,如下所示:
[pytest]
testpaths = tests/
这里需要注意的是,多个文件或多个目录可以使用空格进行分隔。
2.2 禁止收集某些文件或目录
有时候,我们希望在运行测试时不收集某些文件或目录,可以通过使用python_files
和python_classes
选项来实现。
下面的示例将禁止收集名字以"test_"开头的文件:
[pytest]
python_files = !test_*
下面的示例将禁止收集名字以"test_"开头的类:
[pytest]
python_classes = !Test_*
2.3 使用插件
Pytest支持第三方插件,可以通过在pytest.ini文件中配置来启用或配置插件。首先需要安装相应的插件,然后在pytest.ini文件中的plugins
选项中指定插件的名称。
[pytest]
plugins = pytest-html
2.4 设置报告输出格式
Pytest提供了多种可视化的报告输出格式,包括文本、HTML、XML等。在pytest.ini文件中,可以通过设置console_output_style
和addopts
选项来指定报告输出格式。
下面的示例将报告输出格式设置为文本:
[pytest]
console_output_style = classic
addopts = --tb=short
下面的示例将报告输出格式设置为HTML:
[pytest]
console_output_style = classic
addopts = --html=report.html
2.5 控制测试顺序
有时候,我们希望按照某种顺序执行测试用例,可以通过使用python_classes
和python_functions
选项来控制测试顺序。
下面的示例将测试用例按照类名的字母顺序执行:
[pytest]
python_classes = Test*
python_functions = test_*
2.6 设置全局变量
在测试过程中,有时候需要使用全局变量来记录测试结果或传递参数。可以通过在pytest.ini文件中使用env
选项来设置全局变量。
下面的示例将设置一个名为"temperature"的全局变量,并赋值为0.6:
[pytest]
env =
temperature = 0.6
3. 运行测试
当pytest.ini文件配置完成后,我们可以使用pytest
命令来运行测试。Pytest会自动加载pytest.ini文件,并按照配置的参数执行测试。
下面的示例是运行测试的命令:
$ pytest
4. 小结
通过编辑pytest.ini文件,我们可以对Pytest测试框架的行为和参数进行配置。配置文件中可以设置测试文件和目录、禁止收集文件或目录、使用插件、设置报告输出格式、控制测试顺序、设置全局变量等。正确使用pytest.ini文件可以帮助我们更好地控制和管理测试环境,提高测试效率和准确性。
注意:temperature=0.6,这个值在第2.6节已经设置为全局变量了。