#!/bin/bash
TOTAL=0
PASSED=0
FAILED=0
LOG_DIR="./test_logs"
mkdir -p "$LOG_DIR"
echo "============================================================"
echo "顺序执行所有测试脚本并实时回显日志"
echo "============================================================"
TEST_FILES=$(find . -name "*.py" -not -path "*/.*" -not -path "*__pycache__*")
for FILE in $TEST_FILES; do
if grep -q "if __name__ == .__main__.:" "$FILE"; then
TOTAL=$((TOTAL + 1))
TEMP_LOG="$LOG_DIR/$(basename "$FILE").log"
echo "------------------------------------------------------------"
echo -e "🚀 [RUNNING] \e[36m$FILE\e[0m"
python3 "$FILE" > "$TEMP_LOG" 2>&1
STATUS=$?
cat "$TEMP_LOG"
if [ $STATUS -eq 0 ]; then
echo -e "\e[32m结果: [PASS]\e[0m"
PASSED=$((PASSED + 1))
else
echo -e "\e[31m结果: [FAIL (Status: $STATUS)]\e[0m"
FAILED=$((FAILED + 1))
FAILED_LIST+="\n - $FILE"
fi
rm -f "$TEMP_LOG"
echo "------------------------------------------------------------"
echo ""
fi
done
echo "============================================================"
echo "测试结束汇总:"
echo " 总运行数: $TOTAL"
echo -e " 成功通过: \e[32m$PASSED\e[0m"
echo -e " 失败项数: \e[31m$FAILED\e[0m"
if [ $FAILED -gt 0 ]; then
echo -e "\e[31m具体失败脚本: $FAILED_LIST\e[0m"
rm -rf "$LOG_DIR"
exit 1
else
echo -e "\e[32m🎉 所有测试全部通过!\e[0m"
rm -rf "$LOG_DIR"
exit 0
fi