Skip to content

🔧 限制本地测试为单 worker,CI 保留并行分片 - #1767

Open
cyfung1031 wants to merge 1 commit into
mainfrom
codex/local-test-single-worker
Open

cyfung1031 wants to merge 1 commit into
mainfrom
codex/local-test-single-worker

Conversation

@cyfung1031

Copy link
Copy Markdown
Collaborator

Checklist / 检查清单

  • Fixes mentioned issues / 已修复或实现本次请求
  • Code reviewed by human / 代码通过人工检查
  • Changes tested / 已完成针对性验证

背景

本地执行完整测试时,Vitest 的多个项目会按 worker 配额并行运行,Playwright 默认也会启动 4 个 worker,容易占用本机资源。CI 的并行分片用于缩短远程反馈时间,应继续保留。

本次改动

  • 本地 Vitest 的 fastscriptsuiisolated 项目均限制为 1 个 worker,并按 groupOrder 0/1/2/3 顺序执行。
  • CI=true 时保留现有 Vitest worker 配额和项目分组:75%/75%/50%/50%,分组顺序 0/0/1/1。
  • 本地 Playwright worker 从 4 调整为 1;CI 仍使用 2 个 worker,E2E workflow 的 4 个 shard 未改动。

实现考虑

Vitest 文档实现确认同一 groupOrder 的项目会同时运行,不同顺序会串行运行。因此仅将 maxWorkers 改为 1 仍会让同组项目同时打开 worker;本地同时使用唯一的 group order 才能满足单 worker 资源约束。

已知限制

本地未运行完整 Vitest、覆盖率或 E2E 套件,以避免按请求进行高资源消耗的本地并发/性能验证;完整远程验证由现有 CI workflow 执行。

建议审查重点

  • 检查无 CI 环境时四个 Vitest 项目的最终配置是否为单 worker 且 group order 唯一。
  • 检查 CI=true 时原有 worker 配额、项目分组及 .github/workflows/test.yaml 的 Vitest/E2E 分片均保持不变。

验证

基于 d6cc48ba99f8a8ac7d4ad236f2d294fad99e0c79,当前 head 为 faba7d843f5a067c7f1a2d34194a90ee8c787ff7;最终 diff 仅包含 vitest.config.tsplaywright.config.ts

  • pnpm exec tsc --noEmit --pretty false — 通过。
  • pnpm exec prettier --check vitest.config.ts playwright.config.ts — 通过。
  • pnpm exec eslint vitest.config.ts playwright.config.ts — 通过。
  • 本地配置加载确认:Vitest 1/1/1/1 worker、group order 0/1/2/3;Playwright 1 worker。
  • CI 配置加载确认:Vitest 75%/75%/50%/50%、group order 0/0/1/1;Playwright 2 workers。
  • 四个项目各执行一个代表性测试文件:51 个断言全部通过。

@cyfung1031 cyfung1031 added the P2 🐌 非重要也不紧急的内容 label Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 🐌 非重要也不紧急的内容

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant