Commit 1205b87
🐛 e2e 模块不再在顶层加载 @playwright/test,修打包 CI 随机失败
v1.5.0-beta.2 的 Auto_Package 挂在 `pnpm test`:tests/verification-tools.test.ts
收集失败,报 "Requiring @playwright/test second time",4190 个断言一个没挂,
release-action 被跳过、tag 没发出产物。
根因:@playwright/test 的单例守卫(playwright/lib/index.js:61)挂在 process 上,
而 e2e/fixtures.ts、e2e/session.mjs、e2e/drive.mjs 都在模块顶层加载它。tests/ 下
两个单测分别引用了 fixtures.ts 和 session.mjs,于是 vitest 进程里存在两条独立的
加载路径 —— 一旦它们被调度到同一个 worker 线程(fast 项目是 vmThreads +
isolate:false),第二次求值就抛错。
之所以一直没被发现:PR/push 走 test.yaml 的 `--shard=i/2`,这两个文件恰好被切进
不同分片、天然隔离;tag 构建的 `pnpm test` 不分片,是它们首次同进程。本地机器核多
(8 核 → 6 worker),插桩打 threadId 观测到二者始终落在不同线程,所以本地全量也是绿的。
改动:
- 抽出 e2e/launch-args.ts 承载 headlessArgs(纯逻辑、零驱动依赖),fixtures.ts /
server-fixtures.ts / agent-fixtures.ts / gm-api.spec.ts 与单测改引此处;
fixtures.ts 的 base.extend 在模块作用域求值,无法延迟,只能抽离
- session.mjs / drive.mjs 各自只有一个调用点,require 挪到调用处;drive.mjs 的
console 命令因此也不再加载驱动
- 新增子进程探针测试守住 .mjs 侧,新增 tests/** 的 no-restricted-imports 守住 .ts 侧
(该块置于 vitest.setup.ts 专属块之前,否则会顶掉后者更具体的重型模块禁令)
验证:新测试改前红改后绿(stash 回退两个 .mjs 复验);全量套件 ×3 全绿 340/340;
shuffle 压测 ×10 零复现(改前 1/5~1/8 必中);session start → drive open → console
→ stop 全流程实跑通过;options / gm-xhr / agent-chat / gm-api 各抽 spec 实跑通过;
pnpm lint 全过。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 87638a5 commit 1205b87
11 files changed
Lines changed: 78 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | | - | |
| 126 | + | |
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | 18 | | |
20 | 19 | | |
21 | 20 | | |
| |||
164 | 163 | | |
165 | 164 | | |
166 | 165 | | |
| 166 | + | |
| 167 | + | |
167 | 168 | | |
168 | 169 | | |
169 | 170 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | 29 | | |
41 | 30 | | |
42 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | 26 | | |
28 | 27 | | |
29 | 28 | | |
| |||
280 | 279 | | |
281 | 280 | | |
282 | 281 | | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
283 | 286 | | |
284 | 287 | | |
285 | 288 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
100 | 126 | | |
101 | 127 | | |
102 | 128 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
35 | 57 | | |
36 | 58 | | |
37 | 59 | | |
| |||
0 commit comments