分离 Hit 和 Map
在 CI 中收集 Babel 编译期间生成的初始覆盖率源文件
原因
-
收集完整的编译文件:在编译过程中,通过
@canyonjs/babel-plugin插件,分析并解析每个编译文件的初始覆盖率文件,并将其保存到.canyon_out文件夹中。 -
早期收集以减轻压力:如果不报告初始覆盖率文件,这些覆盖率文件将在 UI 自动化测试期间被报告,这会产生巨大的传输压力。早期收集可以减少超过 90% 的传输压力。
报告初始覆盖率数据
@canyonjs/babel-plugin 插件在编译过程中为编译后的文件生成初始覆盖率文件,并将其保存到 .canyon_output 文件夹中。我们提供了 Tools CLI 命令行工具,您可以在 CI 中使用它向 Canyon 服务器报告。
.gitlab-ci.yml
pages:
image: node:20
stage: deploy
script:
- npm i pnpm -g
- pnpm i
- pnpm run build
- npm i @canyonjs/cli -g
- canyon -h
- canyon upload --dsn=https://app.canyonjs.io/api/coverage/map/init
- mv dist/* public
artifacts:
paths:
- public
only:
- main准备就绪
现在检查页面上的 window.coverage 对象,如截图所示。window.coverage 不再包含 map 数据,这可以大大降低 UI 自动化覆盖率收集过程中的大量传输成本。
