Files
ArtPlayer/refactor/test-reliability.md
T

40 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 历史失败与测试可靠性
ENG-10 接续已有验证入口,不增加第二份风险清单。差异 ID、确认程度、责任任务和关闭证据以
[risks.json](risks.json) 为准;支持环境和缺设备项以 [环境矩阵](environment-matrix.md) 为准。
| 类别 | 当前证据及入口 | 如何处理 |
| --- | --- | --- |
| 已发布版本的真实缺陷 | BASE-LIFE 系列及 BASE-PERF;baselines/lifecycle.json、performance.json 和对应脚本 | 保留旧版可重跑结果;候选需要修复用例与差异记录,不能只让新代码满足旧缺陷 |
| 已发布类型失败 | BASE-TYPE-01/02/03;baselines/consumers.json 的编译器、模式、fixture 和精确诊断 | 旧版仍按原诊断验证;候选 core/chapter 已修复,typecheck 和严格打包均要求零诊断 |
| 声明/源码不一致但未完成运行验证 | BASE-TYPE-04 等 source-observed 项 | 原任务继续核实;不能写成已复现或自动豁免 |
| chapter 已修缺陷 | chapter.spec.js 的 published-only 历史观察及 candidate 修复场景,chapter-migration-validation.json | 旧结果与修复回归分开;不把旧版本的 NaN、残留标题作为候选期望 |
| 浏览器允许的媒体取消 | playback.spec.js 中按引擎、错误码、media 类型、同源、当前 case 与两个 URL 限定 | 保留原始请求记录;其他错误仍失败,不全局忽略 net::ERR_ABORTED |
| SDK、codec、素材和设备缺口 | environment-matrix.md 与各包任务;确认程度 unverified | 保持缺证据状态,不计入通过;不能用 mock 代替目标设备支持 |
| 新候选回归或测试不稳定 | 本次运行的结果、版本、SHA、网络与 trace | 先作为失败处理,定位来源后修复;重试通过仍需保留首次失败及解释 |
## 每次运行
- 使用固定 Node/Yarn/浏览器工具链;源码、发布包、安装候选各自标注来源。
- `yarn ci:check` 负责严格类型、Node 行为、冻结基线、计划与风险校验。
- `yarn test:package:release` 重建并在仓库外消费候选,不能从 workspace 补声明;
`refactor/scripts/consumers.mjs` 同样在仓库外重跑旧发布包。旧版数据文件保持不可覆盖。
- 浏览器报告包含引擎版本、资源 SHA、事件、实际媒体状态、请求和错误;故障保留截图与 trace。
`ARTPLAYER_BROWSER_ARTIFACTS` 明确指定安装候选,无源代码 fallback。
- Playwright 当前 retries=0,CI forbidOnly=true;交付需 unexpected/skipped/flaky 均为 0。
若手工诊断时启用重试,只作为取证,不能替代默认配置的最终回归。不得用 skip/only 缩小交付范围。
- 播放准备、seek、切源和异步状态用事件或条件等待,有明确超时。现有 pause 后 200ms 等待
专门测量媒体时钟是否保持停止,不用于猜测加载完成。新等待必须说明相同的可观察目的。
- 控制时间/进度与 DOM 读数在同一次 evaluate 中完成,防止原生 timeupdate 插入造成误报。
对画面/布局容差说明实际像素和浏览器差异,不能用放宽容差掩盖功能变化。
## 模块交付与发布
迁移中的模块不能继承未解释的错误:对应合法旧调用、修复回归、严格源类型、真实环境和打包消费
都必须完成。无关未迁移包可以继续保留有负责人、有来源的历史风险;这不允许它们通过发布准入。
关闭风险必须更新 resolutionEvidence 和 resolutionRationale,运行风险校验;文件存在检查不是
人工审查的替代品。设备缺口在对应包和发布批次保留,不降低全项目目标。
本次核对配置与测试实现,没有新增运行时改动或重复跑整套浏览器;引用的最新实际执行是
[chapter 类型闭环](changes/2026-09-10-PKG-CHAPTER-04-public-types.md)。