pytest 项目教程
1. 项目的目录结构及介绍
pytest 是一个用于 Python 的测试框架,其 GitHub 仓库的目录结构如下:
pytest/
├── .github/
│ └── workflows/
├── _pytest/
│ ├── __init__.py
│ ├── assertion/
│ ├── cacheprovider/
│ ├── capture/
│ ├── cmdline/
│ ├── config/
│ ├── debugging/
│ ├── doctest/
│ ├── faulthandler/
│ ├── fixtures/
│ ├── freeze_support/
│ ├── hookspec.py
│ ├── hookimpl.py
│ ├── legacy.py
│ ├── logging/
│ ├── main/
│ ├── mark/
│ ├── monkeypatch.py
│ ├── nodes.py
│ ├── outcome.py
│ ├── pastebin/
│ ├── pathlib.py
│ ├── pytester.py
│ ├── python.py
│ ├── python_api.py
│ ├── recwarn.py
│ ├── reports.py
│ ├── resultlog.py
│ ├── runner.py
│ ├── session.py
│ ├── setuponly.py
│ ├── setupplan.py
│ ├── skipping.py
│ ├── terminal.py
│ ├── timing.py
│ ├── tmpdir.py
│ ├── traceback.py
│ ├── unittest.py
│ └── warnings.py
├── doc/
│ ├── en/
│ ├── how-to/
│ ├── reference/
│ └── explanation/
├── testing/
│ ├── __init__.py
│ ├── cache/
│ ├── capture/
│ ├── cacheprovider/
│ ├── config/
│ ├── debugging/
│ ├── doctest/
│ ├── faulthandler/
│ ├── fixtures/
│ ├── freeze_support/
│ ├── logging/
│ ├── main/
│ ├── mark/
│ ├── monkeypatch/
│ ├── nodes/
│ ├── outcome/
│ ├── pastebin/
│ ├── pathlib/
│ ├── pytester/
│ ├── python/
│ ├── python_api/
│ ├── recwarn/
│ ├── reports/
│ ├── resultlog/
│ ├── runner/
│ ├── session/
│ ├── setuponly/
│ ├── setupplan/
│ ├── skipping/
│ ├── terminal/
│ ├── timing/
│ ├── tmpdir/
│ ├── traceback/
│ ├── unittest/
│ └── warnings/
├── .gitignore
├── .pre-commit-config.yaml
├── .readthedocs.yml
├── CHANGES.rst
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.rst
├── LICENSE
├── MANIFEST.in
├── README.rst
├── pyproject.toml
├── setup.cfg
├── setup.py
└── tox.ini
目录结构介绍
.github/
: GitHub 相关配置文件,如 CI/CD 工作流。_pytest/
: pytest 的核心代码库,包含各种模块和功能实现。doc/
: 文档目录,包含不同语言和类型的文档。testing/
: 测试代码目录,包含 pytest 自身的测试用例。.gitignore
: Git 忽略文件配置。.pre-commit-config.yaml
: 预提交钩子配置。.readthedocs.yml
: Read the Docs 配置文件。CHANGES.rst
: 变更日志。CODE_OF_CONDUCT.md
: 行为准则。CONTRIBUTING.rst
: 贡献指南。LICENSE
: 许可证文件。MANIFEST.in
: 打包清单文件。README.rst
: 项目介绍和使用说明。pyproject.toml
: 项目配置文件。setup.cfg
: 安装配置文件。setup.py
: 安装脚本。tox.ini
: tox 配置文件。
2. 项目的启动文件介绍
pytest 项目的启动文件是 pytest.py
,位于 _pytest
目录下。这个文件是 pytest 框架的入口点,负责初始化和执行测试。
# pytest.py
import sys
import