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:
128
test/scripts/run_all_tests.sh
Executable file
128
test/scripts/run_all_tests.sh
Executable file
@@ -0,0 +1,128 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Superport 자동화 테스트 실행 스크립트
|
||||
#
|
||||
# 사용법:
|
||||
# ./test/scripts/run_all_tests.sh # 모든 테스트 실행
|
||||
# ./test/scripts/run_all_tests.sh Company # 특정 화면만 테스트
|
||||
# ./test/scripts/run_all_tests.sh --help # 도움말
|
||||
|
||||
set -e # 에러 발생 시 스크립트 중단
|
||||
|
||||
# 색상 정의
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 프로젝트 루트 디렉토리로 이동
|
||||
cd "$(dirname "$0")/../.."
|
||||
|
||||
echo -e "${BLUE}═══════════════════════════════════════════════════════════════${NC}"
|
||||
echo -e "${BLUE} 🚀 SUPERPORT 자동화 테스트 실행 🚀${NC}"
|
||||
echo -e "${BLUE}═══════════════════════════════════════════════════════════════${NC}"
|
||||
echo ""
|
||||
|
||||
# 도움말 표시
|
||||
if [ "$1" == "--help" ] || [ "$1" == "-h" ]; then
|
||||
echo "사용법:"
|
||||
echo " $0 # 모든 화면 테스트 실행"
|
||||
echo " $0 [화면명] # 특정 화면만 테스트"
|
||||
echo " $0 --parallel # 병렬 실행 (기본값)"
|
||||
echo " $0 --sequential # 순차 실행"
|
||||
echo ""
|
||||
echo "테스트 가능한 화면:"
|
||||
echo " - EquipmentIn : 장비 입고"
|
||||
echo " - EquipmentOut : 장비 출고"
|
||||
echo " - License : 라이선스"
|
||||
echo " - Overview : 대시보드"
|
||||
echo " - Company : 회사 관리"
|
||||
echo " - User : 사용자 관리"
|
||||
echo " - Warehouse : 창고 관리"
|
||||
echo ""
|
||||
echo "예시:"
|
||||
echo " $0 Company # Company 화면만 테스트"
|
||||
echo " $0 Company User # Company와 User 화면 테스트"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 테스트 보고서 디렉토리 생성
|
||||
mkdir -p test_reports
|
||||
|
||||
# Flutter 패키지 업데이트
|
||||
echo -e "${YELLOW}📦 패키지 업데이트 중...${NC}"
|
||||
flutter pub get
|
||||
|
||||
# 코드 생성 (Freezed, JsonSerializable)
|
||||
echo -e "${YELLOW}🔧 코드 생성 중...${NC}"
|
||||
flutter pub run build_runner build --delete-conflicting-outputs || true
|
||||
|
||||
# 테스트 실행 시작 시간 기록
|
||||
START_TIME=$(date +%s)
|
||||
|
||||
# 테스트 실행
|
||||
echo -e "${GREEN}🧪 테스트 실행 중...${NC}"
|
||||
echo ""
|
||||
|
||||
# 특정 화면 테스트 또는 전체 테스트
|
||||
if [ -n "$1" ] && [ "$1" != "--parallel" ] && [ "$1" != "--sequential" ]; then
|
||||
# 특정 화면 테스트
|
||||
echo -e "${BLUE}선택된 화면: $@${NC}"
|
||||
flutter test test/integration/automated/master_test_suite.dart \
|
||||
--reporter expanded \
|
||||
--coverage \
|
||||
--timeout 10m \
|
||||
-- --include-screens "$@"
|
||||
else
|
||||
# 전체 테스트
|
||||
echo -e "${BLUE}모든 화면 테스트 실행${NC}"
|
||||
flutter test test/integration/automated/master_test_suite.dart \
|
||||
--reporter expanded \
|
||||
--coverage \
|
||||
--timeout 10m
|
||||
fi
|
||||
|
||||
# 테스트 결과 저장
|
||||
TEST_EXIT_CODE=$?
|
||||
|
||||
# 종료 시간 및 소요 시간 계산
|
||||
END_TIME=$(date +%s)
|
||||
DURATION=$((END_TIME - START_TIME))
|
||||
MINUTES=$((DURATION / 60))
|
||||
SECONDS=$((DURATION % 60))
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}═══════════════════════════════════════════════════════════════${NC}"
|
||||
|
||||
if [ $TEST_EXIT_CODE -eq 0 ]; then
|
||||
echo -e "${GREEN}✅ 테스트 성공!${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ 테스트 실패!${NC}"
|
||||
fi
|
||||
|
||||
echo -e "${BLUE}⏱️ 소요 시간: ${MINUTES}분 ${SECONDS}초${NC}"
|
||||
echo -e "${BLUE}📊 리포트 위치: test_reports/${NC}"
|
||||
echo -e "${BLUE}═══════════════════════════════════════════════════════════════${NC}"
|
||||
|
||||
# 커버리지 리포트 생성 (선택적)
|
||||
if [ -d "coverage" ]; then
|
||||
echo ""
|
||||
echo -e "${YELLOW}📈 커버리지 리포트 생성 중...${NC}"
|
||||
|
||||
# HTML 커버리지 리포트 생성 (lcov 필요)
|
||||
if command -v genhtml &> /dev/null; then
|
||||
genhtml coverage/lcov.info -o coverage/html
|
||||
echo -e "${GREEN}✅ HTML 커버리지 리포트 생성: coverage/html/index.html${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠️ genhtml이 설치되지 않음. HTML 리포트를 생성하려면 lcov를 설치하세요.${NC}"
|
||||
echo -e "${YELLOW} brew install lcov (macOS) 또는 apt-get install lcov (Linux)${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 최근 테스트 리포트 표시
|
||||
echo ""
|
||||
echo -e "${BLUE}📄 최근 생성된 리포트:${NC}"
|
||||
ls -lt test_reports/*.md 2>/dev/null | head -3 || echo " 리포트 없음"
|
||||
|
||||
exit $TEST_EXIT_CODE
|
||||
Reference in New Issue
Block a user