feat: 자동화 테스트 프레임워크 Real API 전용으로 재구성
- Mock 서비스 제거 및 Real API 전용 테스트 헬퍼 추가 - Company, User, Warehouse 화면 테스트 클래스 신규 작성 - Master Test Suite에 모든 화면 테스트 통합 - 테스트 실행 스크립트 추가 (run_all_tests.sh) - Clean Architecture 패턴 지원 준비 Note: UseCase 및 Repository 구현 후 완전한 테스트 실행 가능 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -11,14 +11,17 @@ import 'framework/infrastructure/report_collector.dart';
|
||||
import 'framework/core/api_error_diagnostics.dart';
|
||||
import 'framework/core/auto_fixer.dart' as auto_fixer;
|
||||
import 'framework/core/test_data_generator.dart';
|
||||
import 'framework/core/test_helper.dart';
|
||||
|
||||
// 화면별 테스트 임포트
|
||||
import 'screens/equipment/equipment_in_automated_test.dart';
|
||||
import 'screens/equipment/equipment_out_screen_test.dart';
|
||||
import 'screens/license/license_screen_test.dart';
|
||||
import 'screens/overview/overview_screen_test.dart';
|
||||
import 'screens/company/company_screen_test.dart';
|
||||
import 'screens/user/user_screen_test.dart';
|
||||
import 'screens/warehouse/warehouse_screen_test.dart';
|
||||
import 'screens/base/base_screen_test.dart';
|
||||
// import 'warehouse_automated_test.dart' as warehouse_test;
|
||||
|
||||
/// SUPERPORT 마스터 테스트 스위트
|
||||
///
|
||||
@@ -170,9 +173,8 @@ class MasterTestSuite {
|
||||
_log('🔧 테스트 환경 설정 중...\n');
|
||||
|
||||
try {
|
||||
// GetIt 초기화
|
||||
getIt = GetIt.instance;
|
||||
// await RealApiTestHelper.setupTestEnvironment();
|
||||
// GetIt 초기화 및 Real API 환경 설정
|
||||
getIt = await RealApiTestHelper.setupTestEnvironment();
|
||||
|
||||
// API 클라이언트 가져오기
|
||||
apiClient = getIt.get<ApiClient>();
|
||||
@@ -191,8 +193,9 @@ class MasterTestSuite {
|
||||
dataGenerator = TestDataGenerator();
|
||||
|
||||
|
||||
// 로그인 로직 주석 처리 - 필요시 구현
|
||||
_log('✅ 로그인 성공!\n');
|
||||
// 테스트용 로그인 수행
|
||||
final accessToken = await RealApiTestHelper.loginForTest();
|
||||
_log('✅ 로그인 성공! (토큰: ${accessToken.substring(0, 20)}...)\n');
|
||||
|
||||
} catch (e) {
|
||||
_log('❌ 환경 설정 실패: $e');
|
||||
@@ -256,10 +259,44 @@ class MasterTestSuite {
|
||||
));
|
||||
}
|
||||
|
||||
// 5. Company 테스트 (기존 테스트가 BaseScreenTest를 상속하지 않는 경우 래퍼 필요)
|
||||
// 5. Company 테스트
|
||||
if (_shouldIncludeScreen('Company')) {
|
||||
screenTests.add(CompanyScreenTest(
|
||||
apiClient: apiClient,
|
||||
getIt: getIt,
|
||||
testContext: TestContext(),
|
||||
errorDiagnostics: errorDiagnostics,
|
||||
autoFixer: autoFixer,
|
||||
dataGenerator: dataGenerator,
|
||||
reportCollector: ReportCollector(),
|
||||
));
|
||||
}
|
||||
|
||||
// 6. User 테스트
|
||||
if (_shouldIncludeScreen('User')) {
|
||||
screenTests.add(UserScreenTest(
|
||||
apiClient: apiClient,
|
||||
getIt: getIt,
|
||||
testContext: TestContext(),
|
||||
errorDiagnostics: errorDiagnostics,
|
||||
autoFixer: autoFixer,
|
||||
dataGenerator: dataGenerator,
|
||||
reportCollector: ReportCollector(),
|
||||
));
|
||||
}
|
||||
|
||||
// 7. Warehouse 테스트
|
||||
// TODO: 나머지 화면 테스트들도 BaseScreenTest 형식으로 마이그레이션 필요
|
||||
if (_shouldIncludeScreen('Warehouse')) {
|
||||
screenTests.add(WarehouseScreenTest(
|
||||
apiClient: apiClient,
|
||||
getIt: getIt,
|
||||
testContext: TestContext(),
|
||||
errorDiagnostics: errorDiagnostics,
|
||||
autoFixer: autoFixer,
|
||||
dataGenerator: dataGenerator,
|
||||
reportCollector: ReportCollector(),
|
||||
));
|
||||
}
|
||||
|
||||
return screenTests;
|
||||
}
|
||||
@@ -418,7 +455,7 @@ class MasterTestSuite {
|
||||
buffer.writeln('- **테스트 날짜**: ${DateTime.now().toLocal()}');
|
||||
buffer.writeln('- **총 소요시간**: ${_formatDuration(totalDuration)}');
|
||||
buffer.writeln('- **실행 모드**: ${options.parallel ? "병렬" : "순차"}');
|
||||
buffer.writeln('- **환경**: Production API (https://api-dev.beavercompany.co.kr)');
|
||||
buffer.writeln('- **환경**: Production API (${RealApiTestHelper.baseUrl})');
|
||||
buffer.writeln('');
|
||||
|
||||
buffer.writeln('## 📈 전체 결과');
|
||||
@@ -563,7 +600,7 @@ class MasterTestSuite {
|
||||
'duration': totalDuration.inMilliseconds,
|
||||
'environment': {
|
||||
'platform': 'Flutter',
|
||||
'api': 'https://api-dev.beavercompany.co.kr',
|
||||
'api': RealApiTestHelper.baseUrl,
|
||||
'executionMode': options.parallel ? 'parallel' : 'sequential',
|
||||
},
|
||||
},
|
||||
@@ -595,7 +632,7 @@ class MasterTestSuite {
|
||||
_log('\n🧹 테스트 환경 정리 중...');
|
||||
|
||||
try {
|
||||
// await RealApiTestHelper.teardownTestEnvironment();
|
||||
await RealApiTestHelper.teardownTestEnvironment();
|
||||
_log('✅ 환경 정리 완료\n');
|
||||
} catch (e) {
|
||||
_log('⚠️ 환경 정리 중 에러: $e\n');
|
||||
|
||||
Reference in New Issue
Block a user