- 一个测试用例 = 一条转换路径:输入格式A → 输出格式B
- 优先文本输出:便于验证和diff比较
- 覆盖主要格式:测试最常用的输入法格式
- 最小化测试数量:避免冗余测试
| 测试ID |
输入格式 |
输入文件 |
输出格式 |
说明 |
词条数 |
| T1 |
搜狗.scel |
唐诗300首.scel |
搜狗文本 |
最常用格式 |
3,563 |
| T2 |
QQ拼音.txt |
QQPinyin.txt |
搜狗文本 |
QQ文本→搜狗 |
4 |
| T3 |
QQ拼音.qpyd |
成语.qpyd |
搜狗文本 |
QQ分类→搜狗 |
1,657 |
| T4 |
QQ拼音.qcel |
星际战甲.qcel |
搜狗文本 |
QQ英文→搜狗 |
4,675 |
| T5 |
百度.bdict |
travel.bdict |
搜狗文本 |
百度→搜狗 |
~200 |
| T6 |
Rime |
luna_pinyin_export.txt |
搜狗文本 |
Rime→搜狗 |
14 |
| T7 |
灵格斯.ld2 |
i.ld2 |
搜狗文本 |
灵格斯→搜狗 |
大量 |
| T8 |
自定义 |
array30.txt |
搜狗文本 |
行列30→搜狗 |
大量 |
| T9 |
纯汉字 |
纯汉字.txt |
搜狗文本 |
无拼音→搜狗 |
13 |
| 测试ID |
输入格式 |
输入文件 |
输出格式 |
说明 |
| T10 |
搜狗文本 |
唐诗300首(已转) |
搜狗.scel |
验证二进制导出 |
| T11 |
搜狗文本 |
唐诗300首(已转) |
QQ.qpyd |
验证QQ二进制导出 |
| 测试ID |
场景 |
输入文件 |
输出格式 |
说明 |
| T12 |
编码GBK |
gbzy.txt |
搜狗文本 |
GBK编码 |
| T13 |
UTF-8无BOM |
u8nobomzy.txt |
搜狗文本 |
UTF-8无BOM |
| T14 |
英文词条 |
QQPinyin_English.txt |
搜狗文本 |
包含英文 |
| T15 |
大文件性能 |
诗词名句大全.scel |
搜狗文本 |
13MB, 342K词条 |
test-cases/
├── sougou-scel/ # 搜狗.scel测试
├── qq-pinyin-txt/ # QQ拼音文本测试
├── qq-qpyd/ # QQ分类词库测试
├── qq-qcel/ # QQ英文词库测试
├── baidu-bdict/ # 百度测试
├── rime/ # Rime测试
├── lingoes-ld2/ # 灵格斯测试
├── self-defining/ # 自定义格式测试
└── special-cases/ # 特殊场景测试
test-cases/
└── conversion-matrix/ # 所有转换路径测试
├── test-config.yaml # 包含所有测试用例
├── README.md
└── expected/ # 所有预期输出
├── t1-scel-to-sgpy.expected
├── t2-qqpy-to-sgpy.expected
├── t3-qpyd-to-sgpy.expected
└── ...
test-cases/
├── imports/ # 输入格式测试(文本输出)
│ ├── test-config.yaml # 包含T1-T9
│ └── expected/
└── exports/ # 输出格式测试(二进制输出)
├── test-config.yaml # 包含T10-T11
└── expected/
- 测试数量减少:从30+个测试用例优化到15个核心测试
- 维护成本降低:单一配置文件,统一管理
- 覆盖率不变:仍然覆盖所有主要格式
- 执行速度更快:减少重复的设置开销
- 更清晰的测试目的:每个测试明确一条转换路径
- 保留现有的测试套件作为参考
- 创建新的
conversion-matrix 测试套件
- 逐步迁移,确保测试通过
- 最终删除旧的测试套件
选择方案B或C,创建统一的测试配置文件。