关于 integration-tests
integration-tests 是用于运行需要本地 npm 注册表的集成测试技能,面向需要验证构建、发布和测试流程的开发者。它启动本地 Verdaccio,按指定顺序执行流水线,并在结束后关闭注册表。
主要功能
- 01启动本地 Verdaccio 注册表
- 02执行构建、重置与发布流水线
- 03运行集成测试套件
- 04启用存储挂载测试覆盖
- 05失败后清理注册表进程
- 06汇总测试结果与错误
适用场景
- 01验证本地包发布后的安装流程
- 02运行依赖本地注册表的集成测试
- 03检查存储挂载集成测试
- 04定位发布或测试流水线失败
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openai/ openai-agents-js --skill integration-tests安装后在 Claude Code 中输入/integration-tests确认已加载。
附带文件agents/openai.yaml
详细介绍
集成测试
概述
启动后台子进程运行 pnpm local-npm:start,然后在主进程中执行构建、重置、发布和测试流程,运行需要本地 npm 注册表的集成测试,最后妥善关闭注册表进程并返回结果。
工作流
Codex 执行环境
- 当 Codex 调用此技能时,默认在 Codex 沙箱外运行
pnpm local-npm:start和主流程(sandbox_permissions=require_escalated)。集成测试套件会在测试 fixture 项目中使用npm install、bun install、Deno、Wrangler、本地模拟器、Docker 和其他子进程安装依赖;在 Codex 沙箱内运行可能导致仅由环境引起的故障,例如npm写入~/.npm/_cacache/tmp时出现EPERM,或 Bun 写入其临时目录时出现PermissionDenied。 - 仅当用户明确要求时,才使用沙箱执行。如果沙箱运行在安装依赖或写入临时目录/缓存时失败,应在将其归类为仓库导致的问题之前,在沙箱外重跑完全相同的流程。
- 仍须确保注册表的生命周期仅限于本次运行:在主流程之前启动 Verdaccio,并在主流程之后将其停止,即使发生故障也不例外。
1. 启动本地注册表(子进程)
- 使用
pnpm local-npm:start启动后台进程,并保留其会话 ID,以便之后停止。 - 等待注册表就绪(查找 Verdaccio 的监听消息或默认的
http://localhost:4873行)。如果没有明确的就绪消息,等待几秒后继续。 - 如果端口已被占用,说明可能已有注册表正在运行;只有确认它是预期的本地注册表后才继续,否则停止该进程并重新启动。
2. 运行主流程(主进程)
在主进程中按以下精确顺序运行,并捕获输出:
pnpm i && pnpm build:ci && pnpm local-npm:reset && pnpm local-npm:publish && OPENAI_AGENTS_RUN_STORAGE_MOUNT_INTEGRATION=1 pnpm test:integration
-
在此使用
pnpm build:ci,以便该技能验证与 GitHub Actions 当前使用的相同串行构建流程,同时仍运行常规的prebuild和postbuild生命周期步骤。 -
使用
OPENAI_AGENTS_RUN_STORAGE_MOUNT_INTEGRATION=1运行pnpm test:integration,这样使用此技能时默认会运行可选的沙箱存储挂载测试覆盖。此设置会启用本地 Azurite 和 MinIO 冒烟测试,而不会更改仓库中pnpm test:integration的默认行为。 -
返回完整的成功/失败结果,并简要总结结果。
-
始终捕获
pnpm test:integration的标准输出和标准错误,并在最终回复中以围栏代码块形式包含(如果内容非常长,可删去明显无关的输出)。 -
不要使用监视模式。
如果 pnpm local-npm:publish 失败
请参阅 integration-tests/README.md 中列出的标准恢复步骤进行排查。如果时间紧迫,请按其中给出的顺序优先处理,并在回复中明确指出具体错误文本。
3. 清理注册表进程
- 向注册表子进程发送 Ctrl+C,并等待其退出。
- 如果进程未退出,请按 PID 终止,并在结束前确认端口已释放。
输出要求
- 始终在回复中包含集成测试结果。
- 如果任何步骤失败,请说明失败的命令、错误输出摘要以及建议采取的下一步操作。
评论
支持 Markdown