Files
2026Technology-Competition/data/demo-stylelint/reports/demo-stylelint-coverage-report.md
T
范智鹏 3c390cfa90 feat: demo-pmd 样本工程入库 + Windows spawn cmd EINVAL 修复 + 实测报告清理
- 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 间接执行)
2026-08-26 22:04:47 +08:00

119 lines
6.6 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.
# 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** | **68100%** | — |
**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.cssbug 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 条全部 errorrecommended 与 extra 均未配置 `severity: warning` 覆盖,stylelint 默认全部 error |
---
## 七、结论与后续
**demo-stylelint 工程的插件实测验证完成**
1. ✅ 内置规则全覆盖达成(68/68 种 · 145 处)
2. ✅ 插件行为零偏差(145/145 条逐条一致)
3. ✅ 「内置配置回退」路径完整验证(工程无 `.stylelintrc` 场景)
4. ✅ 零缺陷(对照 SQLFlutt 发现的 JJ01 NaN 问题,Stylelint 适配器的 endLine 回退写法正确)
---
*报告生成于 2026-08-25 · demo-stylelint 插件实测 · 比对脚本:`stylelint-compare.mjs` · 数据:`stylelint-final-compare.json`*