Files
gym-manage/gym-manage-web/vitest.config.optimized.ts
T

78 lines
1.7 KiB
TypeScript

import { defineConfig } from 'vitest/config'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath } from 'node:url'
export default defineConfig({
plugins: [vue()],
test: {
globals: true,
environment: 'jsdom',
setupFiles: ['./src/test/setup.ts'],
pool: 'threads',
poolOptions: {
threads: {
singleThread: false,
minThreads: 2,
maxThreads: 4,
useAtomics: true,
},
},
include: ['src/test/**/*.{test,spec}.{js,ts}'],
exclude: [
'node_modules/',
'dist/',
'**/*.d.ts',
'**/*.config.*',
'**/mockData',
'e2e/',
],
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html', 'lcov'],
exclude: [
'node_modules/',
'src/test/',
'**/*.d.ts',
'**/*.config.*',
'**/mockData',
'e2e/',
'src/main.ts',
'src/router/index.ts',
],
lines: 80,
functions: 80,
branches: 80,
statements: 80,
all: true,
clean: true,
reportsDirectory: './coverage',
subdir: '.',
},
testTimeout: 10000,
hookTimeout: 10000,
teardownTimeout: 10000,
isolate: false,
bail: 5,
retry: 2,
reporters: ['verbose', 'json', 'html'],
outputFile: {
json: './test-results/vitest-results.json',
html: './test-results/vitest-report.html',
},
maxConcurrency: 4,
cache: {
dir: './node_modules/.vitest',
enabled: true,
},
benchmark: {
include: ['src/test/**/*.{bench,benchmark}.{js,ts}'],
exclude: ['node_modules/', 'dist/'],
},
},
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
})