Files
DiffLens/vitest.config.ts

49 lines
1.7 KiB
TypeScript

import { resolve } from 'path'
import { defineConfig } from 'vitest/config'
import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
'@renderer': resolve('src/renderer/src')
}
},
test: {
environment: 'jsdom',
globals: false,
setupFiles: ['./src/renderer/src/test/setup.ts'],
include: [
'src/renderer/src/**/*.{test,spec}.{ts,tsx}',
// 主进程纯逻辑模块(无 electron 依赖)与两进程共享纯逻辑模块的单元测试
'src/main/**/*.{test,spec}.{ts,tsx}',
'src/shared/**/*.{test,spec}.{ts,tsx}'
],
exclude: ['node_modules', 'dist', 'out'],
coverage: {
provider: 'v8',
reporter: ['text', 'text-summary'],
include: ['src/renderer/src/**/*.{ts,tsx}', 'src/main/**/*.ts', 'src/shared/**/*.ts'],
exclude: [
'src/renderer/src/**/*.{test,spec}.{ts,tsx}',
'src/renderer/src/test/**',
'src/renderer/src/env.d.ts',
// worker 线程入口无法在 jsdom 执行,其调用的 computeDiff 已由 diffEngine 测试覆盖
'src/renderer/src/diff/diffWorker.ts',
// 主进程入口依赖 electron 运行时,无法在 jsdom 测试(窗口/IPC 逻辑随发布人工自测)
'src/main/index.ts',
// 解码 worker 线程入口(真实链路由 E2E 编码用例覆盖),其调用的
// decodeText 已由 decode 测试覆盖
'src/main/decodeWorker.ts'
],
all: true,
// CI 门禁:四项覆盖率不得低于 80%,否则测试失败
thresholds: {
statements: 80,
branches: 80,
functions: 80,
lines: 80
}
}
}
})