Skip to content

🔨 [组件测试覆盖率提升专项] #5631

@zhangpaopao0609

Description

@zhangpaopao0609

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.tsxform-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%。

Metadata

Metadata

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions