Adds the new Rust-based UI (iced), backend service, shared Swift models, CI/CD workflows, build scripts, and project documentation.
86 lines
2.3 KiB
Bash
Executable File
86 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# run-tests.sh - Run all tests (unit + UI)
|
|
# Usage: ./run-tests.sh [unit|ui|all]
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$SCRIPT_DIR/MovieMapper-iOS"
|
|
|
|
# Default test type
|
|
TEST_TYPE="${1:-all}"
|
|
|
|
# Load environment variables
|
|
if [[ -f "$SCRIPT_DIR/.env" ]]; then
|
|
export TVDB_API_KEY=$(grep "^TVDB_API_KEY=" "$SCRIPT_DIR/.env" | cut -d'=' -f2)
|
|
echo "✓ Loaded TVDB_API_KEY from .env"
|
|
else
|
|
echo "⚠ .env file not found, TVDB_API_KEY may not be set"
|
|
fi
|
|
|
|
# Create test results directory
|
|
RESULTS_DIR="$SCRIPT_DIR/test-results"
|
|
mkdir -p "$RESULTS_DIR"
|
|
|
|
echo "=== MovieMapper iOS Test Runner ==="
|
|
echo "Test Type: $TEST_TYPE"
|
|
echo "Results Directory: $RESULTS_DIR"
|
|
echo ""
|
|
|
|
cd "$PROJECT_DIR"
|
|
|
|
if [[ "$TEST_TYPE" == "unit" || "$TEST_TYPE" == "all" ]]; then
|
|
echo "=== Running Unit Tests ==="
|
|
|
|
if [[ "$TEST_TYPE" == "unit" ]]; then
|
|
swift test
|
|
else
|
|
swift test 2>&1 | tee "$RESULTS_DIR/unit-test.log"
|
|
fi
|
|
|
|
echo "✓ Unit tests completed"
|
|
echo ""
|
|
fi
|
|
|
|
if [[ "$TEST_TYPE" == "ui" || "$TEST_TYPE" == "all" ]]; then
|
|
echo "=== Running UI Tests ==="
|
|
|
|
SCHEME="MovieMapper-iOS"
|
|
|
|
xcodebuild test -project "$PROJECT_DIR" \
|
|
-scheme "$SCHEME" \
|
|
-destination 'platform=iOS Simulator,name=iPad Pro (12.9-inch) (17th generation)' \
|
|
-destination-timeout 60 \
|
|
-testSummaryReport "$RESULTS_DIR/ui-test.xml" \
|
|
-quiet 2>&1 | tee "$RESULTS_DIR/ui-test.log"
|
|
|
|
echo "✓ UI tests completed"
|
|
echo ""
|
|
fi
|
|
|
|
# Generate test summary report
|
|
echo "=== Test Summary Report ==="
|
|
echo "Generated at: $(date)"
|
|
echo ""
|
|
|
|
if [[ -f "$RESULTS_DIR/unit-test.log" ]]; then
|
|
UNIT_PASSED=$(grep -c "Test Passed" "$RESULTS_DIR/unit-test.log" 2>/dev/null || echo 0)
|
|
UNIT_FAILED=$(grep -c "Test Failed" "$RESULTS_DIR/unit-test.log" 2>/dev/null || echo 0)
|
|
echo "Unit Tests:"
|
|
echo " Passed: $UNIT_PASSED"
|
|
echo " Failed: $UNIT_FAILED"
|
|
echo ""
|
|
fi
|
|
|
|
if [[ -f "$RESULTS_DIR/ui-test.log" ]]; then
|
|
UI_PASSED=$(grep -c "Test Passed" "$RESULTS_DIR/ui-test.log" 2>/dev/null || echo 0)
|
|
UI_FAILED=$(grep -c "Test Failed" "$RESULTS_DIR/ui-test.log" 2>/dev/null || echo 0)
|
|
echo "UI Tests:"
|
|
echo " Passed: $UI_PASSED"
|
|
echo " Failed: $UI_FAILED"
|
|
echo ""
|
|
fi
|
|
|
|
echo "✓ All tests completed"
|
|
echo ""
|
|
echo "Test results saved to: $RESULTS_DIR" |