mcpField
I
integration-tests

integration-tests

github.com/openai测试与质量4.0k110 次安装1 天前更新
代码仓库

关于 integration-tests

integration-tests 是用于运行需要本地 npm 注册表的集成测试技能,面向需要验证构建、发布和测试流程的开发者。它启动本地 Verdaccio,按指定顺序执行流水线,并在结束后关闭注册表。

主要功能

  1. 01启动本地 Verdaccio 注册表
  2. 02执行构建、重置与发布流水线
  3. 03运行集成测试套件
  4. 04启用存储挂载测试覆盖
  5. 05失败后清理注册表进程
  6. 06汇总测试结果与错误

适用场景

  1. 01验证本地包发布后的安装流程
  2. 02运行依赖本地注册表的集成测试
  3. 03检查存储挂载集成测试
  4. 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