开发命令
1. 查找命令
使用第一个能给出答案的源。在运行之前说明该命令。
- 仓库说明:
CLAUDE.md、CONTRIBUTING.md、README.md。在 gener8v 流程仓库中,.gener8v/context.md列出了每个仓库的验证命令。 - 任务运行器:
Makefile、justfile、Taskfile.yml、package.json脚本、pyproject.toml工具部分、tox.ini、noxfile.py。 - CI 工作流:
.github/workflows/*.yml。CI 运行的内容定义了“测试通过”。 - 生态默认值:
resources/ecosystems.md。
如果项目在容器中运行(compose.yaml、docker-compose.yml、开发容器),请按项目文档所述在容器内运行命令。参见 resources/ecosystems.md。
2. 运行
- 从窄范围开始:一个测试文件或一个包。然后运行完整套件后再报告。
- 不要启动监视模式。许多测试运行器默认会监视。使用“运行一次”的形式(
resources/ecosystems.md)。 - 缩短输出时保留退出码:
set -o pipefail <command> 2>&1 | tail -n 60 echo "exit=$?" - 在后台启动开发服务器。等待其 URL 响应。完成后停止它。
3. 读取结果
- 退出码决定一切。 诸如“完成”之类的文本并不代表成功。
- 计数。 报告通过、失败和跳过的数量。跳过、预期失败和“未收集到测试”不算通过。
- 不稳定的测试。 再次单独运行一次失败的测试。如果通过,将其报告为不稳定。不要隐藏它。
- 之前就存在的失败。 检查基分支:最新的 CI 运行(
gh run list --branch <base> --limit 3)或独立工作树中的一次运行。将这些失败报告为“在<base>分支上已失败”。不要用它们来为自己引入的失败开脱。 - 不要为了使其通过而削弱测试。 如果测试是错误的,说明原因并在单独、可见的提交中进行更改。
4. UI 工作的数据
当 UI 需要真实数据时,遵循 resources/throwaway-data.md。简要规则是:仅填充你为此目的创建的数据库。绝不填充项目的真实、默认或共享数据库。
5. 报告
给出命令、退出码、计数以及每个失败的第一个真正错误。如果你没有运行某些内容(例如,需要凭据的端到端测试),请说明原因。
相关技能
engineering:github-pr-merge和engineering:github-issue-workflow在 PR 之前会调用此技能。engineering:documentation-bootstrap使用它来查找文档必须列出的命令。