78 lines
1.7 KiB
TypeScript
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)),
|
|
},
|
|
},
|
|
})
|