Svelte项目中Vitest配置无法排除文件出测试覆盖率问题
解决Vitest覆盖率无法排除指定文件的问题
问题原因
你把exclude放在了test根配置下,这个配置是用来排除测试文件本身的,不控制覆盖率统计的文件范围。要排除文件在覆盖率统计外,得在coverage配置块里单独设置exclude。
修正后的配置
把要排除的文件路径移到coverage.exclude中,同时注意路径匹配的准确性(比如文件名大小写、相对路径是否正确):
import { defineConfig } from 'vite'; import svelte from '@sveltejs/vite-plugin-svelte'; export default defineConfig({ plugins: [svelte({ hot: !process.env.VITEST })], test: { globals: true, environment: 'jsdom', setupFiles: ['src/setupTest.js'], coverage: { reporter: ['text', 'lcov'], all: true, // 在这里配置覆盖率要排除的文件 exclude: [ 'myFile.js', '**/node_modules/**', '**/dist/**', '**/*.test.js', // 通常也会排除测试文件本身 '**/*.spec.js' ] }, // 这里的exclude是排除测试用例文件,按需保留 exclude: ['**/node_modules/**', '**/dist/**'] } });
额外注意事项
- 核对文件名大小写:如果实际文件是
myfile.js(小写f),配置里写myFile.js会匹配失败,要保持完全一致。 - 优化路径匹配:如果文件在src目录下,写成
src/myFile.js或者**/myFile.js更稳妥,避免相对路径问题导致匹配不到。 - 验证结果:运行
vitest run --coverage后,查看覆盖率报告,确认目标文件是否已被排除。
内容的提问来源于stack exchange,提问作者vuvu
相关产品推荐
相关产品推荐

