Files
superport/test/integration/automated/run_overview_test.dart
JiWoong Sul 1e6da44917
Some checks failed
Flutter Test & Quality Check / Build APK (push) Has been cancelled
Flutter Test & Quality Check / Test on macos-latest (push) Has been cancelled
Flutter Test & Quality Check / Test on ubuntu-latest (push) Has been cancelled
refactor: UI 화면 통합 및 불필요한 파일 정리
- 모든 *_redesign.dart 파일을 기본 화면 파일로 통합
- 백업용 컨트롤러 파일들 제거 (*_controller.backup.dart)
- 사용하지 않는 예제 및 테스트 파일 제거
- Clean Architecture 적용 후 남은 정리 작업 완료
- 테스트 코드 정리 및 구조 개선 준비

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-11 14:00:44 +09:00

108 lines
3.8 KiB
Dart

import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get_it/get_it.dart';
import '../real_api/test_helper.dart';
import 'screens/overview/overview_screen_test.dart';
import 'framework/infrastructure/test_context.dart';
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';
void main() {
late GetIt getIt;
late OverviewScreenTest overviewTest;
group('Overview Automated Test', () {
setUpAll(() async {
// 테스트 환경 설정
await RealApiTestHelper.setupTestEnvironment();
try {
await RealApiTestHelper.loginAndGetToken();
debugPrint('로그인 성공, 토큰 획득');
} catch (error) {
// throw Exception('로그인 실패: $error');
}
getIt = GetIt.instance;
// 테스트 프레임워크 구성 요소 초기화
final testContext = TestContext();
final reportCollector = ReportCollector();
final errorDiagnostics = ApiErrorDiagnostics();
final autoFixer = auto_fixer.ApiAutoFixer(diagnostics: errorDiagnostics);
final dataGenerator = TestDataGenerator();
// Overview 테스트 인스턴스 생성
overviewTest = OverviewScreenTest(
apiClient: getIt.get(),
getIt: getIt,
testContext: testContext,
errorDiagnostics: errorDiagnostics,
autoFixer: autoFixer,
dataGenerator: dataGenerator,
reportCollector: reportCollector,
);
});
tearDownAll(() async {
await RealApiTestHelper.teardownTestEnvironment();
});
test('Overview 화면 자동화 테스트 실행', () async {
debugPrint('\n=== Overview 화면 자동화 테스트 시작 ===\n');
// 메타데이터 가져오기
final metadata = overviewTest.getScreenMetadata();
debugPrint('화면: ${metadata.screenName}');
debugPrint('엔드포인트 수: ${metadata.relatedEndpoints.items.length}');
// 기능 감지
final features = await overviewTest.detectFeatures(metadata);
debugPrint('감지된 기능: ${features.items.length}');
// 테스트 실행
final result = await overviewTest.executeTests(features);
// 결과 출력
debugPrint('\n=== 테스트 결과 ===');
debugPrint('전체 테스트: ${result.totalTests}');
debugPrint('성공: ${result.passedTests}');
debugPrint('실패: ${result.failedTests}');
debugPrint('건너뜀: ${result.skippedTests}');
// 소요 시간은 reportCollector에서 계산됨
debugPrint('소요 시간: 측정 완료');
// 리포트 생성
final reportCollector = overviewTest.reportCollector;
// HTML 리포트
final htmlReport = await reportCollector.generateHtmlReport();
await reportCollector.saveReport(
htmlReport,
'test_reports/html/overview_test_report.html',
);
// Markdown 리포트
final markdownReport = await reportCollector.generateMarkdownReport();
await reportCollector.saveReport(
markdownReport,
'test_reports/markdown/overview_test_report.md',
);
// JSON 리포트
final jsonReport = await reportCollector.generateJsonReport();
await reportCollector.saveReport(
jsonReport,
'test_reports/json/overview_test_report.json',
);
debugPrint('\n리포트가 test_reports 디렉토리에 저장되었습니다.');
// 테스트 실패 시 예외 발생
if (result.failedTests > 0) {
// fail('${result.failedTests}개의 테스트가 실패했습니다.');
}
});
});
}