#!/bin/bash set -e echo "======================================" echo "测试基线质量检查" echo "======================================" echo "" RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' API_BASELINE_PASSED=238 API_BASELINE_RATE=100 FRONTEND_BASELINE_PASSED=386 FRONTEND_BASELINE_TOTAL=627 FRONTEND_BASELINE_RATE=61.6 echo "1. 检查API测试..." cd everything-is-suitable-test/api API_RESULT=$(python -m pytest tests/unit/ -v --tb=short 2>&1 | tail -5) API_PASSED=$(echo "$API_RESULT" | grep -oP '\d+(?= passed)' || echo "0") API_FAILED=$(echo "$API_RESULT" | grep -oP '\d+(?= failed)' || echo "0") if [ "$API_PASSED" -eq "$API_BASELINE_PASSED" ] && [ "$API_FAILED" -eq "0" ]; then echo -e "${GREEN}✅ API测试通过率保持100%${NC}" else echo -e "${RED}❌ API测试通过率下降!${NC}" echo "基线: $API_BASELINE_PASSED passed" echo "当前: $API_PASSED passed, $API_FAILED failed" exit 1 fi echo "" echo "2. 检查前端单元测试..." cd ../../everything-is-suitable-admin FRONTEND_RESULT=$(npm run test 2>&1 | grep -E "passed|failed|Test Files" | tail -5) FRONTEND_PASSED=$(echo "$FRONTEND_RESULT" | grep -oP '\d+(?= passed)' || echo "0") FRONTEND_FAILED=$(echo "$FRONTEND_RESULT" | grep -oP '\d+(?= failed)' || echo "0") FRONTEND_TOTAL=$((FRONTEND_PASSED + FRONTEND_FAILED)) if [ "$FRONTEND_PASSED" -ge "$FRONTEND_BASELINE_PASSED" ]; then FRONTEND_RATE=$(echo "scale=1; $FRONTEND_PASSED * 100 / $FRONTEND_TOTAL" | bc) echo -e "${GREEN}✅ 前端测试通过率保持≥61.6%${NC}" echo "通过率: $FRONTEND_RATE%" else echo -e "${RED}❌ 前端测试通过率下降!${NC}" echo "基线: $FRONTEND_BASELINE_PASSED/$FRONTEND_BASELINE_TOTAL ($FRONTEND_BASELINE_RATE%)" echo "当前: $FRONTEND_PASSED/$FRONTEND_TOTAL" exit 1 fi echo "" echo "3. 检查E2E测试..." E2E_RESULT=$(npx playwright test --reporter=list 2>&1 | grep -E "passed|failed" | tail -5) E2E_PASSED=$(echo "$E2E_RESULT" | grep -oP '\d+(?= passed)' || echo "0") E2E_FAILED=$(echo "$E2E_RESULT" | grep -oP '\d+(?= failed)' || echo "0") if [ "$E2E_PASSED" -ge "48" ]; then echo -e "${GREEN}✅ E2E测试通过数≥48${NC}" else echo -e "${YELLOW}⚠️ E2E测试通过数下降${NC}" echo "基线: 48 passed" echo "当前: $E2E_PASSED passed" fi echo "" echo "======================================" echo -e "${GREEN}✅ 测试基线质量检查通过${NC}" echo "======================================"