mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-09 03:46:16 -08:00
3.8 KiB
3.8 KiB
历史失败与测试可靠性
ENG-10 接续已有验证入口,不增加第二份风险清单。差异 ID、确认程度、责任任务和关闭证据以 risks.json 为准;支持环境和缺设备项以 环境矩阵 为准。
| 类别 | 当前证据及入口 | 如何处理 |
|---|---|---|
| 已发布版本的真实缺陷 | 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 类型闭环。