背景:这条 lane 刚刚第一次真正跑起来
.github/workflows/live-e2e.yml 因为一处 job 级 env: 里的 runner 上下文,自 #3325 落地起就一直是 workflow 级 startup failure(0 job / 0s),从未执行过任何一个用例。#3425 / PR #3432 修好该启动故障后,这条 lane 在 PR #3432 上跑出了历史第一个真实 run:
后端、控制台、登录都是好的([live-e2e] authenticated as admin@objectos.ai),action-modal 与 screen-flow 两条都过。失败集中在 master-detail.spec.ts 的两条,且是同一个根因,发生在 beforeEach 里。
现象
e2e/live/master-detail.spec.ts:33:
await expect(page.getByRole('heading', { name: 'New Project + Tasks' })).toBeVisible();
报:
Error: expect(locator).toBeVisible() failed
Locator: getByRole('heading', { name: 'New Project + Tasks' })
Expected: visible
Error: strict mode violation: getByRole('heading', { name: 'New Project + Tasks' })
resolved to 2 elements:
1) < h1 class="text-3xl font-bold tracking-tight text-foreground" >New Project + Tasks< /h1 >
aka getByRole('heading', { name: 'New Project + Tasks' }).first()
2) < h1 class="text-2xl font-semibold tracking-tight" >New Project + Tasks< /h1 >
aka locator('header').filter({ hasText: 'New Project + TasksMaster-' }).getByRole('heading')
两条受影响用例(都卡在同一个 beforeEach,因此用例主体一行未跑):
master-detail.spec.ts:36 — Create submits the populated parent in one atomic batch
master-detail.spec.ts:58 — Create with a task line includes the child op referencing the parent
需要判断的是哪一侧的问题(我没有下结论)
同一段文案被渲染成两个 h1:一个是页面级大标题(text-3xl),一个在 header 里(text-2xl)。这有两种可能,请在三方定夺时一并判断:
- 测试侧:页面本来就有「页面标题 + 吸顶 header 标题」两处,属预期;那么 spec 的定位器过宽,应收窄(限定 scope,或改用更稳的语义锚点)。
- 应用侧:同一标题被重复渲染成两个
h1 本身就是缺陷 —— 一个文档里出现两个 h1 对 a11y / 文档大纲也不健康,读屏会读到重复标题。若如此,该修的是渲染侧,spec 反而是正确的探针。
倾向 2 值得先看一眼再决定:h1 重复是无障碍层面的真问题,而不只是选择器写窄一点就能了事的测试瑕疵。
影响
该 lane 是 continue-on-error: true 的 informational 车道,不阻塞合并(workflow run 结论为 success);但 PR checks 列表里 Live E2E (informational) 这一格会显示 failure。也就是说 #3425 消灭的是「假红」(startup failure),这条留下的是「真红」—— 有 Playwright 报告、截图、录像和 live-e2e-artifacts 制品可查,正是这条 lane 被设计出来要抓的东西。
复现:pnpm test:e2e:live:ci(需按 e2e/live/ci/backend.env 起真后端)。
发现于 #3425 的修复验证过程(PR #3432),按 Prime Directive #10 独立立单、不夹带修复。
背景:这条 lane 刚刚第一次真正跑起来
.github/workflows/live-e2e.yml因为一处 job 级env:里的runner上下文,自 #3325 落地起就一直是 workflow 级 startup failure(0 job / 0s),从未执行过任何一个用例。#3425 / PR #3432 修好该启动故障后,这条 lane 在 PR #3432 上跑出了历史第一个真实 run:4 tests,2 passed / 2 failed(18.2s)后端、控制台、登录都是好的(
[live-e2e] authenticated as admin@objectos.ai),action-modal与screen-flow两条都过。失败集中在master-detail.spec.ts的两条,且是同一个根因,发生在beforeEach里。现象
e2e/live/master-detail.spec.ts:33:报:
两条受影响用例(都卡在同一个
beforeEach,因此用例主体一行未跑):master-detail.spec.ts:36— Create submits the populated parent in one atomic batchmaster-detail.spec.ts:58— Create with a task line includes the child op referencing the parent需要判断的是哪一侧的问题(我没有下结论)
同一段文案被渲染成两个 h1:一个是页面级大标题(
text-3xl),一个在header里(text-2xl)。这有两种可能,请在三方定夺时一并判断:h1本身就是缺陷 —— 一个文档里出现两个h1对 a11y / 文档大纲也不健康,读屏会读到重复标题。若如此,该修的是渲染侧,spec 反而是正确的探针。倾向 2 值得先看一眼再决定:
h1重复是无障碍层面的真问题,而不只是选择器写窄一点就能了事的测试瑕疵。影响
该 lane 是
continue-on-error: true的 informational 车道,不阻塞合并(workflow run 结论为success);但 PR checks 列表里Live E2E (informational)这一格会显示 failure。也就是说 #3425 消灭的是「假红」(startup failure),这条留下的是「真红」—— 有 Playwright 报告、截图、录像和live-e2e-artifacts制品可查,正是这条 lane 被设计出来要抓的东西。复现:
pnpm test:e2e:live:ci(需按e2e/live/ci/backend.env起真后端)。发现于 #3425 的修复验证过程(PR #3432),按 Prime Directive #10 独立立单、不夹带修复。