vitest.config.components.ts 2.2 KB

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