SuperAPI AI 工具集

uv-pytest-unit-testing

测试与质量

查看项目

更新于 10-15 21:49

技能介绍

用途:为 uv 管理的 Python 仓库(单项目或 uv workspace)标准化 pytest 的配置与执行,并用于故障排查。不适用于通用仓库初始化。

识别模式:pyproject.toml 中存在 [tool.uv.workspace] 时按 workspace 处理,否则按单项目处理。

主要用法:引导 pytest 依赖与基线配置使用 scripts/bootstrap_pytest_uv.sh --workspace-root <repo>,workspace 成员可加 --package <member-name>,需要 pytest-cov 时加 --with-cov,预览变更加 --dry-run。运行测试使用 scripts/run_pytest_uv.sh --workspace-root <repo>,workspace 成员可加 --package <member-name>。

故障排查顺序:命令上下文、测试发现布局、marker 注册、导入路径假设。

编写建议:快速单元测试放 tests/unit,集成测试放 tests/integration;用 fixture 复用初始化并保持最小作用域(默认 function);矩阵用例用 @pytest.mark.parametrize;环境变量与运行时依赖替换用 monkeypatch;使用 pydantic-settings 时优先覆盖环境变量或设置依赖,而不是修改已提交的 .env;自定义 mark 需注册以避免警告。

自动化:适合 Codex App 与 Codex CLI 的测试健康检查、失败分诊与漂移检测。CLI 示例:codex exec --full-auto --sandbox workspace-write --cd "<REPO_PATH>" "<PROMPT_BODY>"。

自定义:可通过 CLI 参数、--config 配置文件、.codex/profiles/uv-pytest-unit-testing/customization.yaml 或 ~/.config/gaelic-ghost/python-skills/uv-pytest-unit-testing/customization.yaml 覆盖默认值;可用 --bypassing-all-profiles、--bypassing-repo-profile、--deleting-repo-profile 临时重置。

限制:所有安装与执行路径要求 uv;--workspace-root 下必须已有 pyproject.toml;操作 workspace 成员时需显式指定包。输出包含 status(success/blocked/failed)、path_type(primary)、执行动作、实际运行命令与失败分组。具体安装步骤与完整配置示例暂未提供。