-
Notifications
You must be signed in to change notification settings - Fork 558
Labels
💪🏻 enhancementNew feature or requestNew feature or request
Description
1. 背景
为了提升 TDesign UI 组件库的质量和稳定性,增强组件的可靠性,我们计划开展一次测试覆盖率提升专项。通过大家的共同努力,完善单元测试,确保组件在各种场景下表现稳定,减少线上问题。
2. 目标
- 全面覆盖:力求所有组件的 statements、branches、functions、lines 四个维度测试覆盖率接近或达到 100%。
- 零死角:确保每行代码、每个分支逻辑、每个函数、每个 api 都被充分测试。
3. 规范说明
为了确保 TDesign 组件库的高质量和高覆盖率,提升组件的稳定性和可靠性,特制定以下测试规范,望各位贡献者在编写和优化测试用例时遵循。
3.1. 测试用例覆盖范围
- 组件的每个 API 都必须编写测试用例。
- 如果某个 API 同时支持基础数据类型(string/number/boolean)和复杂数据类型(Slot/Function),则需分别编写两个测试用例,覆盖不同类型的输入。
- 参考示例:Form 组件的测试用例,确保覆盖率达到或接近 100%。
3.2. 测试内容范围
- 组件本身的功能和行为。
- 组件内部的 hooks(自定义 Hook)。
- 组件内部的 utils(工具函数)。
3.3. 测试文件命名及存放规范
- 测试文件统一放置在对应组件目录下的
__tests__
文件夹中。 - 命名规则:
- 组件测试文件:
[组件名].test.tsx
,例如form.test.tsx
。 - 多子组件场景:每个子组件单独编写测试文件,例如
form.test.tsx
和form-item.test.tsx
。 - 组件内部 hooks 测试文件:
[组件名].hooks.test.tsx
,例如form.hooks.test.tsx
。 - 组件内部 utils 测试文件:同 hooks 规则,例如
form.utils.test.tsx
。
- 组件测试文件:
3.4. 现有测试用例的优化
- 已有部分测试用例的组件,在补充新用例的同时,辛苦顺便对现有测试用例进行优化一下
- 优化内容包括但不限于:
- 补充遗漏的分支和函数调用。
- 按照上述命名和存放规范调整测试文件结构。
- 提升测试用例的可读性和覆盖率。
3.5. 参考示例
- 请参考
Form
组件的测试用例,Form
3.6 查看组件测试覆盖率
可使用以下命令查看某个组件的覆盖率
pnpm run -C packages/tdesign-vue-next/test test:unit-gui button --coverage
更多测试相关可查看:https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/tdesign-vue-next/test/README.md
3.7. 其他说明
- 请确保所有新增和修改的测试用例通过 CI 校验,确保覆盖率达到或接近 100%。
QuentinHsu, uyarn, mustars, Wesley-0808, zhangpaopao0609 and 1 moreWesley-0808, uyarn and zhangpaopao0609uyarn
Metadata
Metadata
Assignees
Labels
💪🏻 enhancementNew feature or requestNew feature or request