vitest.config.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import { defineConfig } from 'vitest/config'
  2. import { resolve } from 'path'
  3. export default defineConfig({
  4. test: {
  5. // 测试环境
  6. environment: 'node',
  7. // 测试文件匹配模式
  8. include: [
  9. 'src/server/api/**/__tests__/**',
  10. 'src/server/modules/**/__tests__/**',
  11. 'src/server/utils/**/__tests__/**',
  12. 'src/server/**/__integration_tests__/**'
  13. ],
  14. // 排除模式
  15. exclude: [
  16. '**/node_modules/**',
  17. '**/dist/**',
  18. '**/build/**',
  19. '**/coverage/**',
  20. 'tests/e2e/**', // 排除Playwright E2E测试文件
  21. 'src/client/**', // 排除客户端代码,由组件测试配置处理
  22. 'vitest.config.ts',
  23. 'vitest.config.components.ts',
  24. 'vite.config.ts',
  25. 'server.js',
  26. 'eslint.config.js',
  27. 'debug-page.js',
  28. ],
  29. // 覆盖率配置
  30. coverage: {
  31. provider: 'v8',
  32. reporter: ['text', 'lcov', 'html'],
  33. reportsDirectory: './coverage',
  34. exclude: [
  35. '**/node_modules/**',
  36. '**/dist/**',
  37. '**/build/**',
  38. '**/coverage/**',
  39. '**/*.d.ts',
  40. 'src/client/**', // 排除所有客户端代码
  41. 'tests/e2e/**', // 排除e2e测试代码
  42. 'scripts/**', // 排除脚本目录
  43. 'src/test/**', // 排除测试工具目录
  44. '**/__tests__/**',
  45. '**/__mocks__/**',
  46. '**/index.ts',
  47. '**/types.ts',
  48. 'vitest.config.ts',
  49. 'vitest.config.components.ts',
  50. 'vite.config.ts',
  51. 'server.js',
  52. 'eslint.config.js',
  53. 'debug-page.js',
  54. ],
  55. thresholds: {
  56. branches: 70,
  57. functions: 70,
  58. lines: 70,
  59. statements: 70
  60. }
  61. },
  62. // 全局设置
  63. globals: true,
  64. // 测试超时
  65. testTimeout: 10000,
  66. // 设置文件
  67. setupFiles: ['./src/test/setup.ts'],
  68. // 别名配置
  69. alias: {
  70. '@': resolve(__dirname, './src'),
  71. '@/client': resolve(__dirname, './src/client'),
  72. '@/server': resolve(__dirname, './src/server'),
  73. '@/share': resolve(__dirname, './src/share'),
  74. '@/test': resolve(__dirname, './test')
  75. },
  76. // api测试关闭并行测试
  77. fileParallelism: false
  78. }
  79. })