Skip to Content
DocumentationEcosystem@canyonjs/report-html

@canyonjs/report-html

Source

一个覆盖率报告器,适配istanbul-reports 接口

安装

npm install --save-dev @canyonjs/report-html

使用

该报告器适配istanbuljs报告器接口,所以支持各种常见的测试框架的覆盖率报告生成,以vitest为例

import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { coverage: { provider: 'v8', reporter: ['json', '@canyonjs/report-html'], }, }, });

配置

Important

支持传入git diff,生成变更代码覆盖率报告!默认读取diff.txt文件内容

import { defineConfig } from 'vitest/config'; const diff = `diff --git a/fixtures/sum.js b/fixtures/sum.js index 1234567..abcdefg 100644 --- a/fixtures/sum.js +++ b/fixtures/sum.js @@ -1,3 +1,5 @@ export function sum(a, b) { + // 新增的注释 return a + b; + // 另一个新增的注释 } diff --git a/fixtures/add.js b/fixtures/add.js index 1234567..abcdefg 100644 --- a/fixtures/add.js +++ b/fixtures/add.js @@ -1,3 +1,6 @@ export function sum(a, b) { + // 新增的注释行 + console.log('计算中...'); return a + b; + // 结束注释 }` export default defineConfig({ test: { coverage: { provider: 'v8', reporter: ['json', [ '@canyonjs/report-html', { diff:diff // 支持git diff字符串内容传入 } ]], }, }, });

CI集成

我们提供了@canyonjs/git-diff,用于侦测流水线环境,输出diff.txt。具体使用请参考@canyonjs/git-diff

例子

测试框架示例链接
Vitestreport-html-vitest 
Jestreport-html-jest 
RSTestreport-html-rstest 
Mochareport-html-mocha 
Test Runnerreport-html-test-runner 

输出

  • index.html,单个html文件,易于传输/部署或直接在任何位置打开。
  • data/report-data.js,对应压缩过的覆盖率数据及源码内容。
  • js、css等静态资源。

报告期界面

覆盖率概览

/test.png

变更代码覆盖率

/test2.png