فهرست منبع

✅ test(integration): 优化测试配置和数据初始化逻辑

- 将数据源初始化移至beforeAll钩子以避免重复初始化
- 添加环境变量NODE_ENV=test确保测试环境正确配置
- 增加数据源初始化状态检查,防止重复初始化错误
- 关闭vitest并行测试以避免数据库连接冲突

✅ refactor(test): 优化测试导入顺序和代码结构

- 调整vitest导入项顺序,保持一致性
- 添加代码注释说明测试环境配置目的
yourname 4 هفته پیش
والد
کامیت
d0ad248918

+ 12 - 3
packages/user-module/tests/integration/role.integration.test.ts

@@ -1,17 +1,26 @@
-import { describe, it, expect, beforeAll, afterAll, beforeEach, afterEach } from 'vitest';
+import { describe, it, expect, beforeAll, beforeEach, afterEach } from 'vitest';
 import { DataSource } from 'typeorm';
 import { RoleService } from '../../src/services/role.service';
 import { Role } from '../../src/entities/role.entity';
 import { AppDataSource, initializeDataSource } from '@d8d/shared-utils';
 
+// 确保测试环境变量被设置
+process.env.NODE_ENV = 'test';
+
 describe('Role Integration Tests', () => {
   let dataSource: DataSource;
   let roleService: RoleService;
 
-  beforeEach(async () => {
+  beforeAll(() => {
+    // 使用预先配置的数据源
     initializeDataSource([Role])
     dataSource = AppDataSource;
-    await dataSource.initialize();
+  })
+
+  beforeEach(async () => {
+    if (!dataSource.isInitialized) {
+      await dataSource.initialize();
+    }
     roleService = new RoleService(dataSource);
   });
 

+ 12 - 3
packages/user-module/tests/integration/user.integration.test.ts

@@ -1,4 +1,4 @@
-import { describe, it, expect, beforeAll, afterAll, beforeEach, afterEach } from 'vitest';
+import { describe, it, expect, beforeEach, afterEach, beforeAll } from 'vitest';
 import { DataSource } from 'typeorm';
 import { UserService } from '../../src/services/user.service';
 import { RoleService } from '../../src/services/role.service';
@@ -6,15 +6,24 @@ import { UserEntity } from '../../src/entities/user.entity';
 import { Role } from '../../src/entities/role.entity';
 import { AppDataSource, initializeDataSource } from '@d8d/shared-utils';
 
+// 确保测试环境变量被设置
+process.env.NODE_ENV = 'test';
+
 describe('User Integration Tests', () => {
   let dataSource: DataSource;
   let userService: UserService;
   let roleService: RoleService;
 
-  beforeEach(async () => {
+  beforeAll(() => {
+    // 使用预先配置的数据源
     initializeDataSource([UserEntity, Role])
     dataSource = AppDataSource;
-    await dataSource.initialize();
+  })
+
+  beforeEach(async () => {
+    if (!dataSource.isInitialized) {
+      await dataSource.initialize();
+    }
     userService = new UserService(dataSource);
     roleService = new RoleService(dataSource);
   });

+ 3 - 1
packages/user-module/vitest.config.ts

@@ -14,6 +14,8 @@ export default defineConfig({
         'tests/',
         '**/*.d.ts'
       ]
-    }
+    },
+    // 关闭并行测试以避免数据库连接冲突
+    fileParallelism: false
   }
 });