═══════════════════════════════════════════════ [2026-03-02 16:02:59] ▶ 阶段 0 — 基线确认(运行回归测试,记录当前失败情况) ═══════════════════════════════════════════════ Running 10 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (31.6s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (retry #1) (31.4s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (11.7s) ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (retry #1) (11.8s) ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (30.6s) ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (30.5s) ✘ 7 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (16.4s) ✘ 8 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (15.9s) ✓ 9 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:277:5 › TC-B04 食物详情页正常加载内容 (18.4s) ✘ 10 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (30.7s) ✘ 11 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (retry #1) (30.5s) ✘ 12 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (31.6s) ✘ 13 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (31.7s) [PageError] 文章不存在 ✘ 14 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (18.2s) [PageError] 文章不存在 ✘ 15 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (18.3s) ✓ 16 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:433:5 › TC-B08 帖子详情页展示营养统计数据 (8.2s) ✘ 17 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (4.7s) ✘ 18 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (4.7s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ───────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ───────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 30 Received: 0 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 30 Received: 0 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 4) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 5) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ───────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 6) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 7) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ─────────── Error: expect(locator).toBeVisible() failed Locator: locator('.conter, .article-content, .content-scroll').first() Expected: visible Received: hidden Timeout: 8000ms Call log:  - Expect "toBeVisible" with timeout 8000ms  - waiting for locator('.conter, .article-content, .content-scroll').first()  12 × locator resolved to   - unexpected value "hidden" 401 | await page.waitForTimeout(3000); 402 | const contentArea = page.locator('.conter, .article-content, .content-scroll').first(); > 403 | await expect(contentArea).toBeVisible({ timeout: 8_000 }); | ^ 404 | const contentText = await contentArea.textContent(); 405 | expect((contentText || '').trim().length, '饮食指南详情应有正文').toBeGreaterThan(50); 406 | await expect(page.locator('.empty-placeholder').filter({ hasText: '暂无' })).toHaveCount(0); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:403:31 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: locator('.conter, .article-content, .content-scroll').first() Expected: visible Received: hidden Timeout: 8000ms Call log:  - Expect "toBeVisible" with timeout 8000ms  - waiting for locator('.conter, .article-content, .content-scroll').first()  12 × locator resolved to   - unexpected value "hidden" 401 | await page.waitForTimeout(3000); 402 | const contentArea = page.locator('.conter, .article-content, .content-scroll').first(); > 403 | await expect(contentArea).toBeVisible({ timeout: 8_000 }); | ^ 404 | const contentText = await contentArea.textContent(); 405 | expect((contentText || '').trim().length, '饮食指南详情应有正文').toBeGreaterThan(50); 406 | await expect(page.locator('.empty-placeholder').filter({ hasText: '暂无' })).toHaveCount(0); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:403:31 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 8) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ───────── Error: 帖子类型 "dinner" 应含中文表述 expect(received).toBe(expected) // Object.is equality Expected: true Received: false 491 | if (label.length > 0) { 492 | const hasChinese = /[\u4e00-\u9fa5]/.test(label); > 493 | expect(hasChinese, `帖子类型 "${label}" 应含中文表述`).toBe(true); | ^ 494 | } 495 | } 496 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:493:52 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 帖子类型 "dinner" 应含中文表述 expect(received).toBe(expected) // Object.is equality Expected: true Received: false 491 | if (label.length > 0) { 492 | const hasChinese = /[\u4e00-\u9fa5]/.test(label); > 493 | expect(hasChinese, `帖子类型 "${label}" 应含中文表述`).toBe(true); | ^ 494 | } 495 | } 496 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:493:52 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 8 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ──────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────── 2 passed (7.5m) [2026-03-02 16:10:32] 基线记录完成 ═══════════════════════════════════════════════ [2026-03-02 16:10:32] ▶ 阶段 1 — 快速修复(BUG-002, BUG-006, BUG-009) ═══════════════════════════════════════════════ [2026-03-02 16:10:32] [BUG-002] 启动 Cursor Agent 修复... [2026-03-02 16:10:39] [BUG-002] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-002-161032.log [2026-03-02 16:10:39] [BUG-006] 启动 Cursor Agent 修复... [2026-03-02 16:10:45] [BUG-006] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-006-161039.log [2026-03-02 16:10:45] [BUG-009] 启动 Cursor Agent 修复... [2026-03-02 16:10:51] [BUG-009] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-009-161045.log [2026-03-02 16:10:51] [阶段1] 阶段1修复完成,进行局部验证... [2026-03-02 16:10:51] [TEST] 验证: TC-B02|TC-B06|TC-B09 Running 3 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (30.5s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (30.6s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (31.6s) ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (31.7s) ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (4.8s) ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (4.7s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ───────── Error: 帖子类型 "dinner" 应含中文表述 expect(received).toBe(expected) // Object.is equality Expected: true Received: false 491 | if (label.length > 0) { 492 | const hasChinese = /[\u4e00-\u9fa5]/.test(label); > 493 | expect(hasChinese, `帖子类型 "${label}" 应含中文表述`).toBe(true); | ^ 494 | } 495 | } 496 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:493:52 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 帖子类型 "dinner" 应含中文表述 expect(received).toBe(expected) // Object.is equality Expected: true Received: false 491 | if (label.length > 0) { 492 | const hasChinese = /[\u4e00-\u9fa5]/.test(label); > 493 | expect(hasChinese, `帖子类型 "${label}" 应含中文表述`).toBe(true); | ^ 494 | } 495 | } 496 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:493:52 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────── ═══════════════════════════════════════════════ [2026-03-02 16:13:36] ▶ 阶段 2 — 中等修复(BUG-001, BUG-007) ═══════════════════════════════════════════════ [2026-03-02 16:13:36] [BUG-001] 启动 Cursor Agent 修复... [2026-03-02 16:13:43] [BUG-001] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-001-161336.log [2026-03-02 16:13:43] [BUG-007] 启动 Cursor Agent 修复... [2026-03-02 16:13:48] [BUG-007] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-007-161343.log [2026-03-02 16:13:49] [阶段2] 阶段2修复完成,进行局部验证... [2026-03-02 16:13:49] [TEST] 验证: TC-B01|TC-B07 Running 3 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (31.6s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (retry #1) (31.7s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (11.9s) ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (retry #1) (11.8s) [PageError] 文章不存在 ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (18.3s) [PageError] 文章不存在 ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (18.4s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ───────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ───────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 30 Received: 0 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 30 Received: 0 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ─────────── Error: expect(locator).toBeVisible() failed Locator: locator('.conter, .article-content, .content-scroll').first() Expected: visible Received: hidden Timeout: 8000ms Call log:  - Expect "toBeVisible" with timeout 8000ms  - waiting for locator('.conter, .article-content, .content-scroll').first()  12 × locator resolved to   - unexpected value "hidden" 401 | await page.waitForTimeout(3000); 402 | const contentArea = page.locator('.conter, .article-content, .content-scroll').first(); > 403 | await expect(contentArea).toBeVisible({ timeout: 8_000 }); | ^ 404 | const contentText = await contentArea.textContent(); 405 | expect((contentText || '').trim().length, '饮食指南详情应有正文').toBeGreaterThan(50); 406 | await expect(page.locator('.empty-placeholder').filter({ hasText: '暂无' })).toHaveCount(0); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:403:31 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: locator('.conter, .article-content, .content-scroll').first() Expected: visible Received: hidden Timeout: 8000ms Call log:  - Expect "toBeVisible" with timeout 8000ms  - waiting for locator('.conter, .article-content, .content-scroll').first()  12 × locator resolved to   - unexpected value "hidden" 401 | await page.waitForTimeout(3000); 402 | const contentArea = page.locator('.conter, .article-content, .content-scroll').first(); > 403 | await expect(contentArea).toBeVisible({ timeout: 8_000 }); | ^ 404 | const contentText = await contentArea.textContent(); 405 | expect((contentText || '').trim().length, '饮食指南详情应有正文').toBeGreaterThan(50); 406 | await expect(page.locator('.empty-placeholder').filter({ hasText: '暂无' })).toHaveCount(0); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:403:31 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ──────────── ═══════════════════════════════════════════════ [2026-03-02 16:16:23] ▶ 阶段 3 — 数据展示修复(BUG-003, BUG-008) ═══════════════════════════════════════════════ [2026-03-02 16:16:23] [BUG-003] 启动 Cursor Agent 修复... [2026-03-02 16:16:31] [BUG-003] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-003-161623.log [2026-03-02 16:16:31] [BUG-008] 启动 Cursor Agent 修复... [2026-03-02 16:16:38] [BUG-008] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-008-161631.log [2026-03-02 16:16:38] [阶段3] 阶段3修复完成,进行局部验证... [2026-03-02 16:16:38] [TEST] 验证: TC-B03|TC-B08 Running 2 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (16.7s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (17.1s) ✓ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:433:5 › TC-B08 帖子详情页展示营养统计数据 (8.4s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 1 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── 1 passed (56.3s) ═══════════════════════════════════════════════ [2026-03-02 16:17:37] ▶ 阶段 4 — 复杂修复(BUG-004, BUG-005) ═══════════════════════════════════════════════ [2026-03-02 16:17:37] [BUG-004] 启动 Cursor Agent 修复... [2026-03-02 16:17:43] [BUG-004] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-004-161737.log [2026-03-02 16:17:43] [BUG-005] 启动 Cursor Agent 修复... [2026-03-02 16:17:50] [BUG-005] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-005-161743.log ═══════════════════════════════════════════════ [2026-03-02 16:19:17] ▶ 阶段 0 — 基线确认(运行回归测试,记录当前失败情况) ═══════════════════════════════════════════════ Running 10 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (31.5s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (retry #1) (31.5s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (11.6s) ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (retry #1) (11.7s) ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (30.5s) ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (30.5s) ✘ 7 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (17.7s) ✘ 8 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (16.2s) ✓ 9 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:277:5 › TC-B04 食物详情页正常加载内容 (19.5s) ✘ 10 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (30.6s) ✘ 11 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (retry #1) (30.7s) ✘ 12 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (31.7s) ✘ 13 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (31.8s) [PageError] 文章不存在 ✘ 14 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (18.3s) [PageError] 文章不存在 ✘ 15 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (18.2s) ✓ 16 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:433:5 › TC-B08 帖子详情页展示营养统计数据 (8.2s) ✘ 17 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (4.5s) ✘ 18 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (4.6s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ───────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ───────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 30 Received: 0 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 30 Received: 0 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 4) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 5) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ───────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 6) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 7) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ─────────── Error: expect(locator).toBeVisible() failed Locator: locator('.conter, .article-content, .content-scroll').first() Expected: visible Received: hidden Timeout: 8000ms Call log:  - Expect "toBeVisible" with timeout 8000ms  - waiting for locator('.conter, .article-content, .content-scroll').first()  12 × locator resolved to   - unexpected value "hidden" 401 | await page.waitForTimeout(3000); 402 | const contentArea = page.locator('.conter, .article-content, .content-scroll').first(); > 403 | await expect(contentArea).toBeVisible({ timeout: 8_000 }); | ^ 404 | const contentText = await contentArea.textContent(); 405 | expect((contentText || '').trim().length, '饮食指南详情应有正文').toBeGreaterThan(50); 406 | await expect(page.locator('.empty-placeholder').filter({ hasText: '暂无' })).toHaveCount(0); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:403:31 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: locator('.conter, .article-content, .content-scroll').first() Expected: visible Received: hidden Timeout: 8000ms Call log:  - Expect "toBeVisible" with timeout 8000ms  - waiting for locator('.conter, .article-content, .content-scroll').first()  12 × locator resolved to   - unexpected value "hidden" 401 | await page.waitForTimeout(3000); 402 | const contentArea = page.locator('.conter, .article-content, .content-scroll').first(); > 403 | await expect(contentArea).toBeVisible({ timeout: 8_000 }); | ^ 404 | const contentText = await contentArea.textContent(); 405 | expect((contentText || '').trim().length, '饮食指南详情应有正文').toBeGreaterThan(50); 406 | await expect(page.locator('.empty-placeholder').filter({ hasText: '暂无' })).toHaveCount(0); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:403:31 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 8) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ───────── Error: 帖子类型 "dinner" 应含中文表述 expect(received).toBe(expected) // Object.is equality Expected: true Received: false 491 | if (label.length > 0) { 492 | const hasChinese = /[\u4e00-\u9fa5]/.test(label); > 493 | expect(hasChinese, `帖子类型 "${label}" 应含中文表述`).toBe(true); | ^ 494 | } 495 | } 496 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:493:52 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 帖子类型 "dinner" 应含中文表述 expect(received).toBe(expected) // Object.is equality Expected: true Received: false 491 | if (label.length > 0) { 492 | const hasChinese = /[\u4e00-\u9fa5]/.test(label); > 493 | expect(hasChinese, `帖子类型 "${label}" 应含中文表述`).toBe(true); | ^ 494 | } 495 | } 496 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:493:52 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 8 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ──────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────── 2 passed (7.5m) ═══════════════════════════════════════════════ [2026-03-02 16:43:17] ▶ 阶段 0 — 基线确认(运行回归测试,记录当前失败情况) ═══════════════════════════════════════════════ Running 10 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (31.5s) ═══════════════════════════════════════════════ [2026-03-02 16:44:23] ▶ 阶段 0 — 基线确认(运行回归测试,记录当前失败情况) ═══════════════════════════════════════════════ Running 10 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (31.6s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (retry #1) (31.7s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (11.7s) ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (retry #1) (11.7s) ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (30.6s) ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (30.5s) ✘ 7 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (16.4s) ✘ 8 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (16.0s) ✓ 9 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:277:5 › TC-B04 食物详情页正常加载内容 (18.6s) ✘ 10 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (30.7s) ✘ 11 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (retry #1) (30.6s) ✘ 12 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (31.5s) ✘ 13 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (31.7s) [PageError] 文章不存在 ✘ 14 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (18.4s) [PageError] 文章不存在 ✘ 15 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (18.2s) ✓ 16 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:433:5 › TC-B08 帖子详情页展示营养统计数据 (8.3s) ✘ 17 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (4.7s) ✘ 18 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (4.9s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ───────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ───────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 30 Received: 0 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 30 Received: 0 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 4) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 5) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ───────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 6) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 7) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ─────────── Error: expect(locator).toBeVisible() failed Locator: locator('.conter, .article-content, .content-scroll').first() Expected: visible Received: hidden Timeout: 8000ms Call log:  - Expect "toBeVisible" with timeout 8000ms  - waiting for locator('.conter, .article-content, .content-scroll').first()  12 × locator resolved to   - unexpected value "hidden" 401 | await page.waitForTimeout(3000); 402 | const contentArea = page.locator('.conter, .article-content, .content-scroll').first(); > 403 | await expect(contentArea).toBeVisible({ timeout: 8_000 }); | ^ 404 | const contentText = await contentArea.textContent(); 405 | expect((contentText || '').trim().length, '饮食指南详情应有正文').toBeGreaterThan(50); 406 | await expect(page.locator('.empty-placeholder').filter({ hasText: '暂无' })).toHaveCount(0); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:403:31 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: locator('.conter, .article-content, .content-scroll').first() Expected: visible Received: hidden Timeout: 8000ms Call log:  - Expect "toBeVisible" with timeout 8000ms  - waiting for locator('.conter, .article-content, .content-scroll').first()  12 × locator resolved to   - unexpected value "hidden" 401 | await page.waitForTimeout(3000); 402 | const contentArea = page.locator('.conter, .article-content, .content-scroll').first(); > 403 | await expect(contentArea).toBeVisible({ timeout: 8_000 }); | ^ 404 | const contentText = await contentArea.textContent(); 405 | expect((contentText || '').trim().length, '饮食指南详情应有正文').toBeGreaterThan(50); 406 | await expect(page.locator('.empty-placeholder').filter({ hasText: '暂无' })).toHaveCount(0); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:403:31 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 8) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ───────── Error: 帖子类型 "dinner" 应含中文表述 expect(received).toBe(expected) // Object.is equality Expected: true Received: false 491 | if (label.length > 0) { 492 | const hasChinese = /[\u4e00-\u9fa5]/.test(label); > 493 | expect(hasChinese, `帖子类型 "${label}" 应含中文表述`).toBe(true); | ^ 494 | } 495 | } 496 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:493:52 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 帖子类型 "dinner" 应含中文表述 expect(received).toBe(expected) // Object.is equality Expected: true Received: false 491 | if (label.length > 0) { 492 | const hasChinese = /[\u4e00-\u9fa5]/.test(label); > 493 | expect(hasChinese, `帖子类型 "${label}" 应含中文表述`).toBe(true); | ^ 494 | } 495 | } 496 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:493:52 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 8 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ──────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────── 2 passed (7.5m) [2026-03-02 16:51:57] 基线记录完成 ═══════════════════════════════════════════════ [2026-03-02 16:51:57] ▶ 阶段 1 — 快速修复(BUG-002, BUG-006, BUG-009) ═══════════════════════════════════════════════ [2026-03-02 16:51:57] [BUG-002] 启动 Cursor Agent 修复... [2026-03-02 16:53:32] [BUG-002] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-002-165157.log [2026-03-02 16:53:32] [BUG-006] 启动 Cursor Agent 修复... [2026-03-02 16:54:26] [BUG-006] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-006-165332.log [2026-03-02 16:54:26] [BUG-009] 启动 Cursor Agent 修复... [2026-03-02 16:55:44] [BUG-009] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-009-165426.log [2026-03-02 16:55:44] [阶段1] 阶段1修复完成,进行局部验证... [2026-03-02 16:55:44] [TEST] 验证: TC-B02|TC-B06|TC-B09 Running 3 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (30.5s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (30.5s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (31.6s) ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (31.7s) ✓ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (4.8s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── 1 passed (2.5m) ═══════════════════════════════════════════════ [2026-03-02 16:58:18] ▶ 阶段 2 — 中等修复(BUG-001, BUG-007) ═══════════════════════════════════════════════ [2026-03-02 16:58:18] [BUG-001] 启动 Cursor Agent 修复... [2026-03-02 17:00:40] [BUG-001] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-001-165818.log [2026-03-02 17:00:40] [BUG-007] 启动 Cursor Agent 修复... [2026-03-02 17:04:35] [BUG-007] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-007-170040.log [2026-03-02 17:04:35] [阶段2] 阶段2修复完成,进行局部验证... [2026-03-02 17:04:35] [TEST] 验证: TC-B01|TC-B07 Running 3 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (31.4s) ✓ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (retry #1) (7.5s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (11.7s) ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (retry #1) (11.7s) ✓ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (8.5s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ───────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 40 Received: 10 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 40 Received: 10 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ───────────────── Test timeout of 30000ms exceeded. Error: page.waitForTimeout: Target page, context or browser has been closed 133 | expect(pointsDuring, '打卡点击后 800ms 内积分不应提前增加 30').toBeLessThanOrEqual(initialPoints + 1); 134 | > 135 | await page.waitForTimeout(2000); | ^ 136 | await screenshot(page, 'tc-b01a-checkin-clicked'); 137 | }); 138 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:135:14 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-打卡前积分无提前跳变-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 1 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ────────────────── 1 flaky [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 ────────────────── 1 passed (1.5m) ═══════════════════════════════════════════════ [2026-03-02 17:06:07] ▶ 阶段 3 — 数据展示修复(BUG-003, BUG-008) ═══════════════════════════════════════════════ [2026-03-02 17:06:07] [BUG-003] 启动 Cursor Agent 修复... [2026-03-02 17:09:07] [BUG-003] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-003-170607.log [2026-03-02 17:09:07] [BUG-008] 启动 Cursor Agent 修复... [2026-03-02 17:12:51] [BUG-008] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-008-170907.log [2026-03-02 17:12:51] [阶段3] 阶段3修复完成,进行局部验证... [2026-03-02 17:12:51] [TEST] 验证: TC-B03|TC-B08 Running 2 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (21.5s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (29.5s) ✓ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:433:5 › TC-B08 帖子详情页展示营养统计数据 (8.2s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 1 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── 1 passed (1.2m) ═══════════════════════════════════════════════ [2026-03-02 17:14:09] ▶ 阶段 4 — 复杂修复(BUG-004, BUG-005) ═══════════════════════════════════════════════ [2026-03-02 17:14:09] [BUG-004] 启动 Cursor Agent 修复... [2026-03-02 17:18:12] [BUG-004] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-004-171409.log [2026-03-02 17:18:12] [BUG-005] 启动 Cursor Agent 修复... [2026-03-02 17:22:19] [BUG-005] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-005-171812.log [2026-03-02 17:22:19] [阶段4] 阶段4修复完成,进行局部验证... [2026-03-02 17:22:19] [TEST] 验证: TC-B04|TC-B05 Running 2 tests using 1 worker ✓ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:277:5 › TC-B04 食物详情页正常加载内容 (20.0s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (30.7s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (retry #1) (30.6s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ───────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 1 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ────────────── 1 passed (1.6m) ═══════════════════════════════════════════════ [2026-03-02 17:23:57] ▶ 阶段 5 — 全量回归测试 + 报告生成 ═══════════════════════════════════════════════ [2026-03-02 17:23:57] [TEST] 全量回归测试... Running 10 tests using 1 worker ✓ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 打卡前积分无提前跳变 (7.4s) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (11.6s) ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 (retry #1) (11.6s) ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (30.6s) ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (30.5s) ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (18.2s) ✘ 7 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (16.4s) ✓ 8 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:277:5 › TC-B04 食物详情页正常加载内容 (19.3s) ✘ 9 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (30.6s) ✘ 10 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 (retry #1) (30.9s) ✘ 11 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (31.8s) ✘ 12 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (31.6s) ✓ 13 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:386:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (8.5s) ✓ 14 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:433:5 › TC-B08 帖子详情页展示营养统计数据 (8.1s) ✓ 15 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:468:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (4.8s) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ───────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 40 Received: 10 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 打卡成功后积分应至少增加 30 expect(received).toBeGreaterThanOrEqual(expected) Expected: >= 40 Received: 10 158 | const afterText = await afterEl.textContent(); 159 | const afterPoints = parsePointsFromText(afterText || ''); > 160 | expect(afterPoints, '打卡成功后积分应至少增加 30').toBeGreaterThanOrEqual(initialPoints + 30); | ^ 161 | } else { 162 | test.skip(); 163 | } at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:160:44 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-打卡后积分按规则累加-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first() 196 | 197 | const calcBtn = page.locator('.submit-btn, .calc-btn, button').filter({ hasText: /计算|确定|提交/ }).first(); > 198 | await calcBtn.click(); | ^ 199 | await page.waitForTimeout(3500); 200 | 201 | const resultPage = page.locator('.result-page').first(); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:198:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: 食物条目 1 应有配图 src expect(received).toBeTruthy() Received: null 259 | if (await img.count() > 0) { 260 | const src = await img.getAttribute('src'); > 261 | expect(src, `食物条目 ${i + 1} 应有配图 src`).toBeTruthy(); | ^ 262 | expect((src || '').trim().length).toBeGreaterThan(0); 263 | } 264 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:261:45 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 4) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ───────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: locator.click: Test timeout of 30000ms exceeded. Call log:  - waiting for locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first() 324 | await textInput.fill('什么食物富含蛋白质?'); 325 | const sendBtn = page.locator('.send-btn, .submit-btn').filter({ hasText: /发送/ }).first(); > 326 | await sendBtn.click(); | ^ 327 | await page.waitForTimeout(6000); 328 | 329 | const aiMessages1 = page.locator('.message-item.ai-message .message-text'); at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:326:17 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 5) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded. Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false 373 | 374 | expect(mainIsHealth || mainIsNutrition).toBe(true); > 375 | expect(detailIsHealth || detailIsNutrition).toBe(true); | ^ 376 | expect(mainName === detailName || (mainIsHealth && detailIsHealth) || (mainIsNutrition && detailIsNutrition), 377 | '主页区块名称与营养知识页标题应统一(均为健康知识或均为营养知识)').toBe(true); 378 | at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:375:47 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── Error Context: tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/error-context.md attachment #4: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 5 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:139:5 › TC-B01b 打卡后积分按规则累加 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:171:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:238:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:311:5 › TC-B05 AI针对不同问题返回差异化回复 ────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:352:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── 5 passed (5.7m) [2026-03-02 17:29:45] [TEST] 全量回归完成,报告: tests/e2e/reports/index.html [2026-03-02 17:29:45] ──────────────────────────────────────────────── [2026-03-02 17:29:45] 全部阶段完成!总耗时:45 分钟(2722 秒) [2026-03-02 17:29:45] 回归报告:/Users/apple/scott2026/msh-system/tests/e2e/reports/index.html [2026-03-02 17:29:45] 详细日志:/Users/apple/scott2026/msh-system/scripts/logs/fix-bugs-20260302_1644.log [2026-03-02 17:29:45] ──────────────────────────────────────────────── ═══════════════════════════════════════════════ [2026-03-03 10:20:50] ▶ 阶段 0 — 基线确认(运行回归测试,记录当前失败情况) ═══════════════════════════════════════════════ Running 10 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 (400ms) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 (retry #1) (357ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (381ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (retry #1) (318ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (369ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (402ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 7 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 (397ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 8 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (389ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 9 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 (382ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 10 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 (retry #1) (377ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 11 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 (387ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 12 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 (retry #1) (381ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 13 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 (316ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 14 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (397ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 15 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (386ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 16 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (388ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 17 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 (375ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 18 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 (retry #1) (389ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 19 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (407ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 20 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (350ms) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 ─────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ───── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin Call log:  - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin Call log:  - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 4) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 5) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 ───────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 6) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 ───────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 7) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 8) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ─────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge Call log:  - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge Call log:  - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 9) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 ─────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 10) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ──────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 10 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 ──────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 ────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ──────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 ──────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────── [2026-03-03 10:21:56] 基线记录完成 ═══════════════════════════════════════════════ [2026-03-03 10:21:56] ▶ 阶段 1 — 快速修复(BUG-002, BUG-006, BUG-009) ═══════════════════════════════════════════════ [2026-03-03 10:21:56] [BUG-002] 启动 Cursor Agent 修复... [2026-03-03 10:22:42] [BUG-002] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-002-102156.log [2026-03-03 10:22:42] [BUG-006] 启动 Cursor Agent 修复... [2026-03-03 10:23:38] [BUG-006] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-006-102242.log [2026-03-03 10:23:38] [BUG-009] 启动 Cursor Agent 修复... [2026-03-03 10:24:23] [BUG-009] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-009-102338.log [2026-03-03 10:24:23] [阶段1] 阶段1修复完成,进行局部验证... [2026-03-03 10:24:23] [TEST] 验证: TC-B02|TC-B06|TC-B09 Running 3 tests using 1 worker [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (340ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (349ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 (438ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (477ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (553ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (514ms) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ───────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────── ═══════════════════════════════════════════════ [2026-03-03 10:24:47] ▶ 阶段 2 — 中等修复(BUG-001, BUG-007) ═══════════════════════════════════════════════ [2026-03-03 10:24:47] [BUG-001] 启动 Cursor Agent 修复... [2026-03-03 10:26:27] [BUG-001] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-001-102447.log [2026-03-03 10:26:27] [BUG-007] 启动 Cursor Agent 修复... [2026-03-03 10:28:16] [BUG-007] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-007-102627.log [2026-03-03 10:28:16] [阶段2] 阶段2修复完成,进行局部验证... [2026-03-03 10:28:16] [TEST] 验证: TC-B01|TC-B07 Running 3 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 (665ms) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 (retry #1) (504ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (492ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (retry #1) (551ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (538ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (534ms) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 ─────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ───── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin Call log:  - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin Call log:  - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ─────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge Call log:  - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge Call log:  - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 ──────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ──────────── ═══════════════════════════════════════════════ [2026-03-03 10:28:46] ▶ 阶段 3 — 数据展示修复(BUG-003, BUG-008) ═══════════════════════════════════════════════ [2026-03-03 10:28:46] [BUG-003] 启动 Cursor Agent 修复... [2026-03-03 10:32:47] [BUG-003] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-003-102846.log [2026-03-03 10:32:47] [BUG-008] 启动 Cursor Agent 修复... [2026-03-03 10:34:55] [BUG-008] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-008-103247.log [2026-03-03 10:34:55] [阶段3] 阶段3修复完成,进行局部验证... [2026-03-03 10:34:55] [TEST] 验证: TC-B03|TC-B08 Running 2 tests using 1 worker [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 (354ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (379ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 (340ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 (retry #1) (301ms) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 ─────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 ──────────────── ═══════════════════════════════════════════════ [2026-03-03 10:35:10] ▶ 阶段 4 — 复杂修复(BUG-004, BUG-005) ═══════════════════════════════════════════════ [2026-03-03 10:35:10] [BUG-004] 启动 Cursor Agent 修复... [2026-03-03 10:38:33] [BUG-004] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-004-103510.log [2026-03-03 10:38:33] [BUG-005] 启动 Cursor Agent 修复... [2026-03-03 10:40:03] [BUG-005] Agent 执行完成 → /Users/apple/scott2026/msh-system/scripts/logs/agent-BUG-005-103833.log [2026-03-03 10:40:03] [阶段4] 阶段4修复完成,进行局部验证... [2026-03-03 10:40:03] [TEST] 验证: TC-B04|TC-B05 Running 2 tests using 1 worker [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 (354ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 (retry #1) (328ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 (336ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 (retry #1) (339ms) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 ───────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 ───────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 ────────────── ═══════════════════════════════════════════════ [2026-03-03 10:40:15] ▶ 阶段 5 — 全量回归测试 + 报告生成 ═══════════════════════════════════════════════ [2026-03-03 10:40:15] [TEST] 全量回归测试... Running 10 tests using 1 worker ✘ 1 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 (335ms) ✘ 2 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 (retry #1) (354ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 3 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (351ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 4 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 (retry #1) (338ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 5 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (359ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 6 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 (retry #1) (347ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 7 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 (341ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 8 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 (retry #1) (321ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 9 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 (341ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 10 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 (retry #1) (338ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 11 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 (341ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 12 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 (retry #1) (373ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 13 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 (415ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 14 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 (retry #1) (308ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 15 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (356ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 16 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 (retry #1) (372ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 17 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 (304ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 18 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 (retry #1) (303ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 19 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (342ms) [PageError] Failed to read the 'localStorage' property from 'Window': Access is denied for this document. ✘ 20 [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 (retry #1) (356ms) 1) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 ─────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:115:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01a-未登录点击打卡跳转登录页-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 2) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ───── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin Call log:  - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/checkin Call log:  - navigating to "http://localhost:8080/#/pages/tool/checkin", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:136:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B01b-登录后第一次打卡成功且同一天第二次仅允许一次-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 3) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:191:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B02-计算结果页-Tab-切换选中状态清晰-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 4) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 ──────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:258:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B03-食物列表每条目展示图片与营养信息-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 5) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 ───────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/food-encyclopedia Call log:  - navigating to "http://localhost:8080/#/pages/tool/food-encyclopedia", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:297:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B04-食物详情页正常加载内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 6) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 ───────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:332:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B05-AI针对不同问题返回差异化回复-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 7) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 ────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/index Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/index", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:373:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B06-健康知识与营养知识名称统一性-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 8) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ─────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge Call log:  - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool/nutrition-knowledge Call log:  - navigating to "http://localhost:8080/#/pages/tool/nutrition-knowledge", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:407:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B07-饮食指南和科普文章详情页有正常内容-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 9) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 ─────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:454:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B08-帖子详情页展示营养统计数据-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 10) [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ──────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:8080/#/pages/tool_main/community Call log:  - navigating to "http://localhost:8080/#/pages/tool_main/community", waiting until "load" 61 | 62 | async function goto(page: Page, route: string, waitMs = 2500): Promise { > 63 | await page.goto(`${BASE}/#/${route}`); | ^ 64 | await page.waitForTimeout(waitMs); 65 | } 66 | at goto (/Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:63:14) at /Users/apple/scott2026/msh-system/tests/e2e/bug-regression.spec.ts:489:9 attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/test-failed-1.png ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #2: video (video/webm) ────────────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/video.webm ──────────────────────────────────────────────────────────────────────────────────────────────── attachment #3: trace (application/zip) ───────────────────────────────────────────────────────── tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip Usage: npx playwright show-trace tests/e2e/test-results/bug-regression-TC-B09-社区-Tab-标签和帖子类型均使用中文-mobile-chrome-retry1/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── 10 failed [mobile-chrome] › tests/e2e/bug-regression.spec.ts:114:5 › TC-B01a 未登录点击打卡跳转登录页 ──────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:134:5 › TC-B01b 登录后第一次打卡成功且同一天第二次仅允许一次 ────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:189:5 › TC-B02 计算结果页 Tab 切换选中状态清晰 ─────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:256:5 › TC-B03 食物列表每条目展示图片与营养信息 ───────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:295:5 › TC-B04 食物详情页正常加载内容 ────────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:329:5 › TC-B05 AI针对不同问题返回差异化回复 ────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:371:5 › TC-B06 健康知识与营养知识名称统一性 ─────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:405:5 › TC-B07 饮食指南和科普文章详情页有正常内容 ──────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:452:5 › TC-B08 帖子详情页展示营养统计数据 ──────────────── [mobile-chrome] › tests/e2e/bug-regression.spec.ts:487:5 › TC-B09 社区 Tab 标签和帖子类型均使用中文 ────────── [2026-03-03 10:41:12] [TEST] 全量回归完成,报告: tests/e2e/reports/index.html [2026-03-03 10:41:12] ──────────────────────────────────────────────── [2026-03-03 10:41:12] 全部阶段完成!总耗时:20 分钟(1222 秒) [2026-03-03 10:41:12] 回归报告:/Users/apple/scott2026/msh-system/tests/e2e/reports/index.html [2026-03-03 10:41:12] 详细日志:/Users/apple/scott2026/msh-system/scripts/logs/fix-bugs-20260303_1020.log [2026-03-03 10:41:12] ────────────────────────────────────────────────