48 lines
1.6 KiB
TypeScript
48 lines
1.6 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}'
|
|
],
|
|
exclude: ['node_modules', 'dist', 'out'],
|
|
coverage: {
|
|
provider: 'v8',
|
|
reporter: ['text', 'text-summary'],
|
|
include: ['src/renderer/src/**/*.{ts,tsx}', 'src/main/**/*.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
|
|
}
|
|
}
|
|
}
|
|
}) |