Files
superport/test/run_all_tests.sh
JiWoong Sul 198aac6525
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
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
2025-08-05 20:24:05 +09:00

218 lines
6.5 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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