为何Vitest覆盖率报告会统计仅导出枚举的文件?
Vitest枚举文件分支覆盖率统计异常问题
背景
我们团队执行100%分支覆盖策略,不追踪函数或行覆盖率,认为这是代码覆盖率与开发生产力之间的最佳平衡方案。
问题详情
Vitest会将仅包含枚举导出的文件判定为存在两个未覆盖分支。示例枚举文件代码如下:
export enum URL { preSignedUploadUrl = '/case-document/upload/api?fileType=', saveDocumentUploadToMongoUrl = '/case-document/upload/api?caseReference=', }
虽然编写以下测试代码可以覆盖这些分支,但这类测试并非有实际业务价值的单元测试,仅为满足覆盖率指标而存在:
import { describe } from 'vitest' import { URL } from '@config/urls' describe('urls', () => { it('has the correct URLs', () => { expect(URL.preSignedUploadUrl).toEqual( '/case-document/upload/api?fileType=', ) expect(URL.saveDocumentUploadToMongoUrl).toEqual( '/case-document/upload/api?caseReference=', ) }) })
当前Vitest配置
import { defineConfig, configDefaults } from 'vitest/config' import react from '@vitejs/plugin-react' const config = { plugins: [react()], test: { coverage: { provider: 'istanbul', reporter: ['cobertura', 'json', 'html', 'text-summary'], reportsDirectory: './coverage', branches: 100, all: true, include: ['**/*.ts', '**/*.tsx'], exclude: ['**/*.spec.ts', '**/*.spec.tsx', '.next/*'], src: process.cwd() + '/src', }, setupFiles: './setupTests.js', exclude: [...configDefaults.exclude, './.next/'], environment: 'happy-dom', }, } export default defineConfig(config)
内容的提问来源于stack exchange,提问作者Mild Fuzz
相关产品推荐
相关产品推荐

