圈状覆盖
一个为 CircleCI 智能测试生成覆盖数据的Jest插件.
使用量
此插件使用 v8 JS 引擎配置器 API 来收集覆盖.
安装插件 .
pnpm add -D @circleci/jest-circleci-coverage
Jest测试环境是同伴的依赖——你需要自己安装, 匹配您计划使用的环境。 该插件支持Jest 28,29和30.
关于以节点为基础的测试:
pnpm add -D jest jest-environment-node
对于类似浏览器的测试(如React Testing Library),则安装了JSDOM环境:
pnpm add -D jest jest-environment-jsdom
定出一个特定的主机(例如,在有较新版本的情况下仍停留在Jest 29上), 通过一个明确的版本范围 :
pnpm add -D jest@^29 jest-environment-node@^29
将自定义的运行器和记录器添加到您的 jest.config.ts数字 :
import {createDefaultPreset} from 'ts-jest';
import type {Config} from 'jest';
const tsJestTransformCfg = createDefaultPreset().transform;
const config: Config = {
testEnvironment: '@circleci/jest-circleci-coverage/environment-node',
reporters: ['default', '@circleci/jest-circleci-coverage/reporter'],
transform: {
...tsJestTransformCfg,
},
};
export default config;
对于类似浏览器的测试(如React Testing Library),使用基于JSDOM的环境:
import {createDefaultPreset} from 'ts-jest';
import type {Config} from 'jest';
const tsJestTransformCfg = createDefaultPreset().transform;
const config: Config = {
testEnvironment: '@circleci/jest-circleci-coverage/environment-jsdom',
reporters: ['default', '@circleci/jest-circleci-coverage/reporter'],
transform: {
...tsJestTransformCfg,
},
};
export default config;
设定 CIRCLECI_COVERAGE 运行测试时的环境变量,以允许测试覆盖.
CIRCLECI_COVERAGE=coverage.json jest
发展
安装并使用当前节点版本 .
NODE_VER=$(cat ./.nvmrc)
nvm install $NODE_VER
nvm use $NODE_VER
用 pnpm 安装依赖性 .
pnpm install
构建插件 .
pnpm build
运行测试.
pnpm test