test: 통합 테스트 오류 및 경고 수정
Some checks failed
Flutter Test & Quality Check / Test on macos-latest (push) Has been cancelled
Flutter Test & Quality Check / Test on ubuntu-latest (push) Has been cancelled
Flutter Test & Quality Check / Build APK (push) Has been cancelled

- 모든 서비스 메서드 시그니처를 실제 구현에 맞게 수정
- 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:
JiWoong Sul
2025-08-05 20:24:05 +09:00
parent d6f34c0a52
commit 198aac6525
145 changed files with 41527 additions and 5220 deletions

218
test/run_all_tests.sh Executable file
View 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