o2o商城网站系统开发,服装公司网站多少钱,中国建筑工程机械网,建设三轮摩托车官网1.目录结构介绍
project_root/
│
├── tests/ # 测试用例存放目录
│ ├── __init__.py
│ ├── test_module1.py
│
├── module1.py # 被测试的模块
├── conftest.py # pytest配置文件#xff0c;可定义fixture和钩子函数
├── py…1.目录结构介绍
project_root/
│
├── tests/ # 测试用例存放目录
│ ├── __init__.py
│ ├── test_module1.py
│
├── module1.py # 被测试的模块
├── conftest.py # pytest配置文件可定义fixture和钩子函数
├── pytest.ini # pytest全局配置文件
└── run.py # 运行测试的脚本2. pytest.ini pytest.ini 是 pytest 测试框架的配置文件它允许你对 pytest 的行为进行全局或项目级别的定制。 作用 全局配置借助 pytest.ini 文件你可以为整个项目设定通用的配置选项从而避免在每次运行 pytest 时都要在命令行输入相同的参数。 提高可维护性把配置信息集中存放在一个文件里能让项目的配置更加清晰便于维护和管理。 定制测试行为可以自定义测试发现规则、指定插件、设置日志级别等以满足不同项目的特定需求。 addopts
此配置项用于添加额外的命令行选项这些选项会在每次运行 pytest 时自动生效。
[pytest]
addopts -v -s-v表示以详细模式运行测试会输出更多的测试信息。 -s表示捕获标准输出允许测试用例中的 print 语句正常输出。
testpaths
该配置项用于指定 pytest 搜索测试文件的路径。
[pytest]
testpaths tests这意味着 pytest 只会在 tests 目录及其子目录下查找测试文件。
norecursedirs
此配置项用于指定 pytest 不进行递归搜索的目录。
[pytest]
norecursedirs .git venv这表明 pytest 不会在 .git 和 venv 目录及其子目录下查找测试文件。
3.conftest.py conftest.py 是 pytest 里一个非常重要的文件它能对 pytest 的测试行为进行灵活配置与扩展。 共享 Fixture 函数 Fixture 是 pytest 里用于提供测试数据、初始化测试环境等的可复用函数。在 conftest.py 里定义的 Fixture 函数能够被同目录及其子目录下的所有测试文件使用无需在每个测试文件中重复定义。 Fixture 函数可以有参数并且可以设置作用域如 function、class、module、session
# conftest.py
import pytestpytest.fixture(scopemodule)
def db_connection():# 模拟数据库连接print(建立数据库连接)yield # 在此处执行测试用例print(关闭数据库连接)自定义钩子函数 钩子函数是 pytest 提供的一些特殊函数能在测试执行的不同阶段插入自定义逻辑。在 conftest.py 里定义钩子函数可对 pytest 的默认行为进行修改。
# conftest.py
import pytestdef pytest_sessionstart(session):在测试会话开始时执行print(测试会话开始)def pytest_sessionfinish(session, exitstatus):在测试会话结束时执行print(测试会话结束)也可以 在这里全局配置和初始化 可在 conftest.py 中进行一些全局配置和初始化操作例如设置日志、加载配置文件等让所有测试文件都能使用这些配置。 注意事项 conftest.py 文件不需要手动导入pytest 会自动发现并加载它。 不同目录下的 conftest.py 文件有不同的作用范围子目录下的 conftest.py 文件会覆盖父目录中同名的配置。 合理使用 Fixture 的作用域避免不必要的资源浪费。
4.run.py
统一测试入口 在大型项目里测试用例可能分布在多个不同的目录和文件中。借助 run.py 文件你可以把所有测试的启动逻辑集中起来让测试的执行更加统一和便捷。开发人员或测试人员只需运行这个文件就能启动整个项目的测试流程。定制测试运行参数 run.py 文件允许你根据不同的需求定制 pytest 的运行参数例如指定测试文件、设置测试报告路径、控制测试的详细程度等。
import pytestif __name__ __main__:# 只运行 tests 目录下的测试用例并生成 HTML 报告pytest.main([-v, -s, --htmlreport.html, tests])在上述代码中 -v 表示以详细模式运行测试会输出更多的测试信息。 -s 表示捕获标准输出允许测试用例中的 print 语句正常输出。 –htmlreport.html 表示生成一个名为 report.html 的 HTML 测试报告。 tests 表示只运行 tests 目录下的测试用例。 执行测试前的预处理操作 在 run.py 文件中你可以添加一些测试前的预处理操作比如初始化测试环境、加载配置文件、启动服务等。类似于conftest.py作用执行测试后的清理操作 同样你也可以在 run.py 文件中添加测试后的清理操作如关闭服务、删除临时文件等确保测试环境恢复到初始状态。