#!/bin/bash # 补跑昨晚(2026-06-17)P0 全量里【失败 + 末段未执行】的用例,追加到 reports/.results.json, # 末尾 gen-combined 合并成一份报告(generateCombinedReport 已按 suite+用例名去重保留最新)。 # 手机 WiFi 保持开(控制走 WiFi 轮);不关 WiFi。 set -u cd /Users/woan/Desktop/AI_UIAutomation LOG=reports/p0-supplement.log export PLATFORM=android SOAK_MODE=1 SKIP_PROTO_NET=1 PROTO=wifi export LOCK_DEVICE="Lock 6D" LOCK_PRO_DEVICE="Lock Pro DE" PLUG_CTRL_DEVICE="Plug Mini" BT_DEVICE="Blind Tilt 42" CMDS=( # —— 失败的添加(重试给足) —— "npx vitest run tests/ceiling_light/floor_lamp_connect.test.ts" "npx vitest run tests/strip_light/neon_light_connect.test.ts" "npx vitest run tests/hub/hub3_connect.test.ts" # —— 失败/需复查的控制(WiFi 轮, 手机WiFi开) —— "npx vitest run tests/curtain/curtain_control.test.ts" "npx vitest run tests/air_purifier/air_purifier_card.test.ts" "npx vitest run tests/curtain/blind_tilt_control.test.ts" "npx vitest run tests/bot/bot_card.test.ts" # —— 末段未执行: 拉流 —— "STREAM_HOLD_MS=60000 npx vitest run tests/camera/camera_stream.test.ts" # —— 末段未执行: 平台 —— "npx vitest run tests/platform/feedback.test.ts" "npx vitest run tests/platform/create_room.test.ts" "npx vitest run tests/platform/message_center.test.ts" "npx vitest run tests/platform/scene_operation.test.ts" # —— 末段未执行: 账号 —— "npx vitest run tests/auth/third_party_login.test.ts" "npx vitest run tests/auth/eu_login.test.ts" "npx vitest run tests/auth/register.test.ts" "npx vitest run tests/auth/forgot_password.test.ts" "npx vitest run tests/auth/delete_account.test.ts" "npx vitest run tests/auth/login.test.ts" ) run_one(){ local cmd="$1" t; t=$(mktemp); eval "$cmd" >"$t" 2>&1; grep -E '✓ \[PASS\]|✗ \[FAIL\]|○ \[SKIP\]|结果:' "$t"|tail -10; if grep -q '✗ \[FAIL\]' "$t"; then rm -f "$t"; return 1; fi; rm -f "$t"; return 0; } { echo "===== $(date '+%F %T') P0 补跑开始 =====" FAILED=() for cmd in "${CMDS[@]}"; do echo "--- $(date +%T) $cmd ---"; run_one "$cmd" || { echo "[FAIL] $cmd"; FAILED+=("$cmd"); }; done # 添加类失败重试最多2次 for cmd in "${FAILED[@]}"; do case "$cmd" in *connect*) for a in 1 2; do echo "--- 重试 $a/2: $cmd ---"; run_one "$cmd" && break; done;; esac; done echo "----- 生成合并报告 -----" npx ts-node scripts/gen-combined.ts P0_All_Android_merged echo "===== $(date '+%F %T') 补跑完成 =====" } >> "$LOG" 2>&1