test: 통합 테스트 오류 및 경고 수정
- 모든 서비스 메서드 시그니처를 실제 구현에 맞게 수정 - TestDataGenerator 제거하고 직접 객체 생성으로 변경 - 모델 필드명 및 타입 불일치 수정 - 불필요한 Either 패턴 사용 제거 - null safety 관련 이슈 해결 수정된 파일: - test/integration/screens/company_integration_test.dart - test/integration/screens/equipment_integration_test.dart - test/integration/screens/user_integration_test.dart - test/integration/screens/login_integration_test.dart
This commit is contained in:
218
test/run_all_tests.sh
Executable file
218
test/run_all_tests.sh
Executable file
@@ -0,0 +1,218 @@
|
||||
#!/bin/bash
|
||||
|
||||
# SUPERPORT 통합 테스트 실행 스크립트
|
||||
#
|
||||
# 사용법:
|
||||
# ./test/run_all_tests.sh # 모든 테스트 실행
|
||||
# ./test/run_all_tests.sh demo # 데모 테스트만 실행
|
||||
# ./test/run_all_tests.sh automated # 자동화 테스트만 실행
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo " 🚀 SUPERPORT 테스트 실행 스크립트 🚀"
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
|
||||
# 색상 정의
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 테스트 모드 확인
|
||||
MODE=${1:-"all"}
|
||||
|
||||
# Flutter 확인
|
||||
if ! command -v flutter &> /dev/null; then
|
||||
echo -e "${RED}❌ Flutter가 설치되어 있지 않습니다.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 의존성 확인 및 설치
|
||||
echo -e "${BLUE}📦 의존성 확인 중...${NC}"
|
||||
flutter pub get
|
||||
|
||||
# 테스트 리포트 디렉토리 생성
|
||||
mkdir -p test_reports
|
||||
|
||||
# 테스트 실행 함수
|
||||
run_test() {
|
||||
local test_name=$1
|
||||
local test_path=$2
|
||||
|
||||
echo ""
|
||||
echo -e "${YELLOW}▶️ $test_name 실행 중...${NC}"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
if flutter test "$test_path" --no-pub; then
|
||||
echo -e "${GREEN}✅ $test_name 성공!${NC}"
|
||||
return 0
|
||||
else
|
||||
echo -e "${RED}❌ $test_name 실패!${NC}"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 시작 시간 기록
|
||||
START_TIME=$(date +%s)
|
||||
|
||||
# 성공/실패 카운터
|
||||
PASSED=0
|
||||
FAILED=0
|
||||
|
||||
case $MODE in
|
||||
"demo")
|
||||
echo -e "${BLUE}📋 데모 테스트 모드${NC}"
|
||||
echo ""
|
||||
|
||||
# 데모 테스트 실행
|
||||
if run_test "장비 입고 데모" "test/integration/simple_equipment_in_demo_test.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
if run_test "회사 관리 데모" "test/integration/simple_company_demo_test.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
if run_test "사용자 관리 데모" "test/integration/simple_user_demo_test.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
if run_test "창고 관리 데모" "test/integration/simple_warehouse_demo_test.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
;;
|
||||
|
||||
"automated")
|
||||
echo -e "${BLUE}🤖 자동화 테스트 모드${NC}"
|
||||
echo ""
|
||||
|
||||
# 자동화 테스트 실행
|
||||
if run_test "장비 입고 자동화" "test/integration/automated/equipment_in_test.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
if run_test "회사 관리 자동화" "test/integration/automated/company_automated_test.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
if run_test "사용자 관리 자동화" "test/integration/automated/user_automated_test.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
if run_test "창고 관리 자동화" "test/integration/automated/warehouse_automated_test.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
;;
|
||||
|
||||
"master")
|
||||
echo -e "${BLUE}🎯 마스터 테스트 스위트 실행${NC}"
|
||||
echo ""
|
||||
|
||||
# 마스터 테스트 스위트 실행
|
||||
if run_test "통합 테스트 스위트" "test/integration/automated/master_test_suite.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo -e "${BLUE}📋 전체 테스트 모드${NC}"
|
||||
echo ""
|
||||
|
||||
# 단위 테스트
|
||||
echo -e "${YELLOW}1️⃣ 단위 테스트${NC}"
|
||||
if run_test "Controller 테스트" "test/unit/controllers/"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
# 위젯 테스트
|
||||
echo -e "${YELLOW}2️⃣ 위젯 테스트${NC}"
|
||||
if run_test "Screen 위젯 테스트" "test/widget/screens/"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
|
||||
# 통합 테스트
|
||||
echo -e "${YELLOW}3️⃣ 통합 테스트${NC}"
|
||||
if run_test "마스터 테스트 스위트" "test/integration/automated/master_test_suite.dart"; then
|
||||
((PASSED++))
|
||||
else
|
||||
((FAILED++))
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# 종료 시간 및 소요 시간 계산
|
||||
END_TIME=$(date +%s)
|
||||
DURATION=$((END_TIME - START_TIME))
|
||||
MINUTES=$((DURATION / 60))
|
||||
SECONDS=$((DURATION % 60))
|
||||
|
||||
# 최종 리포트
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo " 📊 테스트 결과 요약 📊"
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
echo -e "⏱️ 총 소요시간: ${MINUTES}분 ${SECONDS}초"
|
||||
echo -e "✅ 성공: ${GREEN}$PASSED${NC}개"
|
||||
echo -e "❌ 실패: ${RED}$FAILED${NC}개"
|
||||
TOTAL=$((PASSED + FAILED))
|
||||
if [ $TOTAL -gt 0 ]; then
|
||||
SUCCESS_RATE=$((PASSED * 100 / TOTAL))
|
||||
echo -e "📊 성공률: ${SUCCESS_RATE}%"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 리포트 생성
|
||||
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
|
||||
REPORT_FILE="test_reports/test_summary_$TIMESTAMP.txt"
|
||||
|
||||
cat > "$REPORT_FILE" << EOF
|
||||
SUPERPORT 테스트 실행 결과
|
||||
========================
|
||||
실행 시간: $(date)
|
||||
테스트 모드: $MODE
|
||||
소요 시간: ${MINUTES}분 ${SECONDS}초
|
||||
|
||||
결과:
|
||||
- 성공: $PASSED개
|
||||
- 실패: $FAILED개
|
||||
- 성공률: ${SUCCESS_RATE}%
|
||||
|
||||
상세 로그는 개별 테스트 출력을 확인하세요.
|
||||
EOF
|
||||
|
||||
echo -e "${BLUE}📄 리포트 저장: $REPORT_FILE${NC}"
|
||||
echo ""
|
||||
|
||||
# 종료 코드 설정
|
||||
if [ $FAILED -gt 0 ]; then
|
||||
echo -e "${RED}⚠️ 일부 테스트가 실패했습니다. 로그를 확인하세요.${NC}"
|
||||
exit 1
|
||||
else
|
||||
echo -e "${GREEN}🎉 모든 테스트가 성공했습니다!${NC}"
|
||||
exit 0
|
||||
fi
|
||||
Reference in New Issue
Block a user