资讯动态

Optio 开发者指南:五层测试体系与 Monorepo 开发环境完整上手教程

发布时间:2026/10/16 3:35:48 来源:尧图企业网站定制
【免费下载链接】optioWorkflow orchestration for AI agent swarms.项目地址https://gitcode.com/gh_mirrors/opt/optio点击查看免费下载Optio 是一个自托管的 AI Agent 编排平台让 Claude Code、Codex、Copilot 等编码智能体像 CI/CD 流水线一样在你的 Kubernetes 集群上运行。本文面向首次参与开发的贡献者带你快速搭好 Monorepo 开发环境并掌握它引以为傲的五层测试体系——从毫秒级的单元测试到真实 LLM 运行的冒烟测试层层递进、互不干扰。 Monorepo 结构一览先看懂代码怎么组织Optio 采用Turborepo pnpm 10管理的 Monorepo所有子包通过 pnpm-workspace.yaml 声明分为apps/*应用和packages/*共享库两大区目录职责技术栈apps/apiFastify API 服务器 14 个 BullMQ 后台 workerFastify 5、Drizzle ORM、Redisapps/webNext.js 15 Web UITailwind CSS v4、Zustand、Playwrightapps/ios原生 iOS 客户端SwiftUIapps/android原生 Android 客户端Kotlin Jetpack Composeapps/clioptio命令行工具含 Optio Local 守护进程TypeScriptpackages/shared类型定义、状态机、工作规范等共享代码被所有应用依赖packages/container-runtime容器运行时抽象K8s / Docker /fake测试的关键拼图packages/agent-adapters六种 Agent 运行时的协议适配—理解这个布局的好处是当你改动某个包时能立刻知道该跑哪一层测试。 开发环境搭建三步跑起全套前置依赖安装清单按 CONTRIBUTING.md 的要求你需要准备Node.js 22pnpm 10npm install -g pnpmDocker Desktop并启用 Kubernetes一键部署本地集群git clone https://gitcode.com/gh_mirrors/opt/optio cd optio pnpm install ./scripts/setup-local.shsetup-local.sh会构建全部镜像并通过 Helm 部署到本地 K8s 集群配置文件见 helm/optio/values.local.yaml。完成后打开http://localhost:30310即可完成首次设置API 监听在http://localhost:30400。之后日常开发只需热重载模式pnpm dev # 启动 API Web 双服务 pnpm turbo typecheck # 对全部 6 个包做类型检查 pnpm turbo test # 跑所有单元测试Vitest全 mock、无基础设施 五层测试体系Optio 的质量护城河这是理解 Optio 工程文化的核心。官方规则写得很直白一个改动在覆盖它的测试层全部通过之前就不算完成。前四层是确定性的——无集群、无 LLM 调用、零成本全部跑在 CI 里第五层只在本地执行。层级命令覆盖内容何时运行1. 单元测试pnpm turbo test纯逻辑、mock 掉服务的 API 路由任何改动必跑2. 集成测试pnpm --filter optio/api test:integration服务层 真实 Postgres Redis状态机、协调器 CAS、触发器、密钥加密改了 DB schema / 服务 / worker3. 流水线 e2epnpm --filter optio/api test:e2e真实 API 服务器全部 14 个 worker经 HTTP 驱动容器运行时换成 fake改了 worker / 路由 / 启动流程4. Web e2epnpm --filter optio/web test:e2ePlaywright 驱动浏览器遍历所有顶层页面改了 Web UI5. Live 冒烟bash scripts/smoke-e2e.sh真实 K8s Pod 真实 Agent 认证 一次真实 LLM 运行约 $0.01改了 Pod 生命周期 / 镜像 / Helm仅本地绝不进 CI下面逐层拆解每层的机制与文件位置。第一层单元测试——全 mock、毫秒级反馈单元测试文件命名为*.test.ts散布在packages/shared和apps/api/src各处。Vitest 配置见 apps/api/vitest.config.ts注意它显式排除了*.int.test.ts和e2e/**防止有人在单测层意外拉起真实基础设施。CI 环境下会自动开启 v8 覆盖率并强制执行阈值行 50%、分支 65%。pnpm turbo test第二层集成测试——真实数据库隔离到文件粒度集成测试命名*.int.test.ts独立配置在 apps/api/vitest.integration.config.ts。它的精妙之处在于隔离模型通过 scripts/test-infra.sh 自动拉起一次性容器optio-test-postgres端口 54329和optio-test-redis端口 63790外加一个三节点 Redis Cluster 供集群模式测试使用每个测试文件都获得一个从已迁移模板克隆的私有数据库 一个租用的 Redis 逻辑库——因此并发运行互不干扰globalSetup还会清扫崩溃残留pool: forks让每个文件跑在独立进程中模块级单例数据库池、Redis 连接天然绑定到该文件自己的私有库。典型范例是 apps/api/src/db/harness.int.test.ts行工厂在 apps/api/src/test-utils/integration/fixtures.ts。第三层流水线 e2e——真实服务器 假 Pod这一层是性价比最高的设计。e2e/*.e2e.test.ts会完整启动真实 API 服务器vitest.e2e.config.ts 将maxWorkers限制为 2避免 4 核 CI 跑机资源饥饿覆盖 HTTP API → BullMQ → worker → 日志流 → 协调器 → 终态的整条流水线但容器运行时被替换为 fake 实现packages/container-runtime/src/fake.ts。Fake runtime 通过提示词指令扮演智能体你可以在测试提示词里写入[[mock:pr]]—— 输出 PR URL推进到pr_opened[[mock:fail]]/[[mock:silent]]/[[mock:hang]]/[[mock:sleep:MS]][[mock:cost:X]]—— 模拟费用这让任务/Job/持久智能体的完整生命周期测试既免费又确定。29 个 e2e 用例覆盖启动迁移、WebSocket 日志流、RBAC、预算等入口在 apps/api/e2e/。第四层Web e2e——Playwright 驱动真实 UIpnpm --filter optio/web test:e2e会调用 apps/web/e2e/launch-stack.ts它先拉起测试 Postgres/Redis 容器、克隆私有数据库再以 hermetic 模式启动真实 APIAPI 4931 端口、Web 3131 端口避开开发默认端口同时next dev代理到它并预置好仓库、任务、Job 运行等数据让每个页面都有非空状态可断言。27 个 Playwright 用例覆盖终端渲染、工作表单、侧边栏等全部顶层页面。首次运行记得cd apps/web npx playwright install chromium第五层Live 冒烟——真实集群 真实 LLMbash scripts/smoke-e2e.sh对已部署的栈做最终验证scripts/smoke-e2e.shAPI 健康检查 → Web 页面可达 → 创建一个一行提示词的真实 Job → 走完 K8s Pod 流水线 → 等待完成并删除。真实 LLM 运行只花大约一美分可用--no-llm跳过。改了 Pod 生命周期、镜像或 Helm 配置后这是提交前的最后关。 开发工作流约定提交之前必过四关项目用Husky lint-staged commitlint把质量门禁自动化提交前lint-staged对暂存的.ts/.tsx跑 ESLint Prettier随后全局执行pnpm format:check和pnpm turbo typecheck见 package.json 的lint-staged字段提交信息强制 Conventional Commitsfeat:/fix:/refactor:等由 commitlint 校验数据库改动修改 apps/api/src/db/schema.ts 后手写新迁移 SQLUnix 时间戳前缀用bash scripts/check-migration-prefixes.sh检查前缀重复移动端模型生成iOS / Android 的类型文件由pnpm gen:swift/pnpm gen:kotlin从packages/shared生成禁止手改CI 会校验同步。 产品全貌测试守护的是什么五层测试守护的对象就是这套覆盖 Web、iOS、Android 的完整工作台任务生命周期、触发器派发、日志实时流、持久智能体、本地终端……测试体系与功能矩阵一一对应这正是改动什么就跑哪层能够成立的原因。✅ 上手检查清单pnpm install完成./scripts/setup-local.sh部署成功pnpm turbo test全部通过第一层pnpm --filter optio/api test:integration通过第二层Docker 需在运行pnpm --filter optio/api test:e2e通过第三层改 UI 时pnpm --filter optio/web test:e2e通过第四层后端改动后重建镜像、重部署本地集群并跑bash scripts/smoke-e2e.sh第五层按这个清单走一遍你就已经具备了向 Optio 提交高质量 PR 的全部能力。赞分享【免费下载链接】optioWorkflow orchestration for AI agent swarms.项目地址https://gitcode.com/gh_mirrors/opt/optio点击查看免费下载相关推荐AlterSend 开发者入门从零搭建 monorepo 开发环境完整教程AlterSend 开发者入门从零搭建 monorepo 开发环境完整教程 AlterSend 是一个开源的 P2P 文件传输应用——文件直接在设备之间点对点Black 贡献者上手指南开发环境搭建、测试体系与风格变更规范Black 贡献者上手指南开发环境搭建、测试体系与风格变更规范 本文基于 Black 仓库官方贡献文档 docs/contributing/the_basic开发工具格式化代码质量CLILlamaIndex 开发者贡献指南基于 uv 的 Monorepo 开发环境、测试与 Lint 工具链LlamaIndex 开发者贡献指南基于 uv 的 Monorepo 开发环境、测试与 Lint 工具链 本篇指南基于 LlamaIndex 仓库根目录的 C人工智能大模型AI 应用RAGAI Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑