- data/demo-pmd 全量入库(26 源文件 + pom/mvnw/lib/reports),.gitignore 排除 target/ - 归档 demo-pmd 实测覆盖率报告(279/279 全覆盖)至 reports/ - 删除 4 份覆盖率报告中的后续建议/实测进度总览(全部实测已收官) - 修复 Windows spawn .cmd/.bat EINVAL(auxClasspath.ts 经 cmd.exe /d /s /c 间接执行)
6.6 KiB
demo-stylelint 插件实测覆盖率报告
工程:
demo-stylelint(common.css/empty-source.css两个样例文件,无.stylelintrc工程配置 → 插件回退内置配置) 测试对象:插件 Stylelint 适配器(引擎 stylelint 17.14.0 + stylelint-config-recommended 18.0.0) 实测日期:2026-08-25 比对基线:与插件依赖版本逐字一致的本地复现(比对键 = 规则 + 行号 + 严重级别)
一、核心结论
| 指标 | 结果 | 状态 |
|---|---|---|
| 规则覆盖率(内置启用 68 条) | 68/68 种全部触发(100%) | ✅ 全覆盖 |
| 插件行为一致性(vs 基线) | 145/145 条逐条一致,零偏差 | ✅ 100% |
| 诊断总数 | 145 处(common.css 144 + empty-source.css 1) | ✅ 与基线完全一致 |
| 缺陷发现 | 无(无 NaN 行号、无解析错误、无规则丢失) | ✅ |
实测完全达成全覆盖基准:插件在「工程无配置文件 → 回退内置配置」路径下,内置启用的 68 条规则全部触发,145 处诊断与模拟基线逐条零偏差。Stylelint 适配器静态分析链路一次通过完整验证,未发现任何缺陷。
二、逐文件比对(实测 vs 基线)
| 文件 | 实测 | 基线 | 一致性 | 触发规则数 |
|---|---|---|---|---|
common.css |
144 | 144 | ✅ 逐条一致 | 67 种 |
empty-source.css |
1 | 1 | ✅ 逐条一致 | 1 种(no-empty-source,仅此文件触发) |
| 合计 | 145 | 145 | ✅ 零偏差 | 68 种(67 + 1 独有) |
比对方法:将插件报告中每条静态诊断(规则名 + 行号 + 严重级别)与基线做多重集合比对;两个文件均
missing = 0、extra = 0。
三、规则覆盖拆解(68/68 = 100%)
内置配置 = stylelint-config-recommended 18.0.0 原生规则 41 条 + 插件追加 stylelintExtraRules 27 条(无重叠,合并 68 条),两部分实测全部触发:
| 来源 | 启用 | 触发 | 说明 |
|---|---|---|---|
| recommended 18.0.0 原生 | 41 | 41/41 | 含 at-rule-descriptor-no-unknown、declaration-property-value-no-unknown、no-duplicate-selectors、selector-pseudo-class-no-unknown 等核心规则 |
| 插件 extra 追加 | 27 | 27/27 | 校验类 7 条(color-no-invalid-hex、function-no-unknown、unit-no-unknown 等)+ 厂商前缀类 5 条 + 记号规范类 8 条 + 其他 7 条 |
| 合计 | 68 | 68(100%) | — |
extra 追加 27 条明细(全部触发):
- 校验类(7):
color-no-invalid-hex、function-linear-gradient-no-nonstandard-direction、function-no-unknown、unit-no-unknown、no-unknown-animations、no-unknown-custom-media、no-unknown-custom-properties - 厂商前缀类(5):
at-rule-no-vendor-prefix、media-feature-name-no-vendor-prefix、property-no-vendor-prefix、selector-no-vendor-prefix、value-no-vendor-prefix - 记号规范类(8):
color-hex-length、color-function-notation、length-zero-no-unit、selector-pseudo-element-colon-notation、import-notation、alpha-value-notation、hue-degree-notation、keyframe-selector-notation - 其他(7):
declaration-block-no-redundant-longhand-properties、shorthand-property-no-redundant-values、block-no-redundant-nested-style-rules、color-named、font-family-name-quotes、number-max-precision、comment-whitespace-inside
四、诊断分布统计
按严重级别(静态 145 条):
| 级别 | 数量 | 占比 |
|---|---|---|
| error(🔴) | 145 | 100% |
| warning(🟡) | 0 | 0% |
按文件:common.css 144 · empty-source.css 1。
高频规则 Top 8(common.css):
| 规则 | 出现次数 |
|---|---|
color-named(不允许命名颜色) |
21 |
no-duplicate-selectors(重复选择器) |
18 |
block-no-empty(空规则块) |
16 |
declaration-property-value-no-unknown(未知属性值) |
9 |
comment-whitespace-inside(注释内空格) |
4 |
keyframe-selector-notation(关键帧选择器记号) |
4 |
import-notation(导入记号) |
3 |
no-invalid-position-at-import-rule(@import 位置非法) |
3 |
注:插件报告中另有 AI 审查建议 6 条(common.css:bug 2 / performance 2 / design 2),属 AI 增强能力,不计入静态规则覆盖口径。
五、实测环境判定
实测报告的文件路径与预期部署一致:
data\demo-stylelint\src\common.css(144 条诊断,行号与基线逐条吻合 → 文件与当前工作区版本一致)data\demo-stylelint\src\empty-source.css(1 条no-empty-source,覆盖该规则在 recommended 中的唯一触发途径——空源文件)
配置路径验证:工程不含任何 .stylelintrc / stylelint.config.*,插件按设计走「内置默认配置回退」路径(recommended.rules + stylelintExtraRules 直接作为 config 对象传入 stylelint.lint())。实测 145/145 逐条一致即为该路径的最终确认。
与 SQLFluff JJ01 缺陷的对照:Stylelint 适配器对 warnings 的 endLine/endColumn 做了缺失回退(w.endLine ?? w.line),因此即使个别警告缺失结束坐标也不会出现 NaN 行号——实测无任何行号异常,该防御性写法经受住了 145 条诊断的验证。
六、数据口径说明
| 项 | 说明 |
|---|---|
| 覆盖率口径 | 68 条 = 内置配置实际启用规则数(recommended 41 + extra 27,无重叠);规则触发即计入 |
| 比对引擎 | stylelint 17.14.0 + stylelint-config-recommended 18.0.0(与插件 package-lock.json 锁定版本逐字一致) |
| 基线复现方式 | 与适配器 getDefaultConfig() 逻辑逐字一致:import('stylelint-config-recommended') 取 rules 后合并 stylelintExtraRules,作为 config 传入 stylelint.lint({ code, codeFilename, cwd }) |
| 基线数据 | /data/user/work/results/stylelint-final-compare.json(逐文件比对明细) |
| 严重级别口径 | 145 条全部 error:recommended 与 extra 均未配置 severity: warning 覆盖,stylelint 默认全部 error |
七、结论与后续
demo-stylelint 工程的插件实测验证完成:
- ✅ 内置规则全覆盖达成(68/68 种 · 145 处)
- ✅ 插件行为零偏差(145/145 条逐条一致)
- ✅ 「内置配置回退」路径完整验证(工程无
.stylelintrc场景) - ✅ 零缺陷(对照 SQLFlutt 发现的 JJ01 NaN 问题,Stylelint 适配器的 endLine 回退写法正确)
报告生成于 2026-08-25 · demo-stylelint 插件实测 · 比对脚本:stylelint-compare.mjs · 数据:stylelint-final-compare.json