如果我们的改动会导致pipeline输出结果变化, 通过快照可以轻松的捕捉到每一行代码对最终结果的影响, 可以轻松提前发现不符合预期的变化
反之, 如果确定代码不会改变pipeline的输出结果, 例如一个大型重构, 就可以安心的进行大刀阔斧的调整代码逻辑, 每一个测试用例都是大型重构的基石
鼓励用多个小的commit, 代替一个大的commit, 否则快照变化会庞大到无法review
VSeed 的测试分为两类:
位于 packages/vseed/tests/unit/ 目录下,针对独立函数、工具类、管道函数等进行单元级别的测试。
特点:
运行命令:
位于 packages/vseed/tests/integration 目录下,基于完整的 VSeed 配置进行端到端测试。
特点:
运行命令:
在目录packages/vseed/tests/integration内包含所有的集成测试用例
json文件, 包含一个完整的 vseed 配置json文件的文件名即为测试用例的名称*.test.ts 文件均为自动生成, 请勿手动维护json文件, 请重新执行 pnpm run build:canvasTest
仅维护 json配置, 极大的提升测试用例的可维护性, 并降低测试用例的编写成本
在目录 packages/vseed/tests/unit/ 内包含所有的单元测试用例
*.test.ts目录结构:
根据每一个vseed, 生成测试用例, 每个用例包含spec 和 advancedVseed 的快照
根据每一个vseed dsl, 生成测试用例, 每个用例包含spec 和 advancedVseed 的快照, 并创建图表实例, 获得更高的测试覆盖率
spec 内存在一些回调函数, 创建图表实例, 才能触发回调函数
运行测试并生成覆盖率报告后, 会自动生成覆盖率徽章到README.md文件, 并打开覆盖率报告页面
packages/vseed/coverage/index.htmlpackages/vseed/coverage/coverage-summary.json徽章使用 shields.io 动态生成,格式为:
| 命令 | 说明 |
|---|---|
pnpm test | 运行所有测试(单元测试 + 集成测试) |
pnpm test:unit | 仅运行单元测试 |
pnpm test:unit:coverage | 运行单元测试并生成覆盖率报告 |
pnpm test:integration | 仅运行集成测试 |
pnpm test:integration:update | 运行集成测试并更新快照 |
pnpm test:integration:coverage | 运行集成测试并生成覆盖率报告 |
pnpm test:update | 运行所有测试并更新快照 |
pnpm test:coverage | 运行所有测试并生成覆盖率报告 |