Files
monisuo/one_click_test.sh

93 lines
2.1 KiB
Bash
Raw Normal View History

#!/bin/bash
# 一键测试脚本 - 自动编译、启动、测试
PROJECT_DIR=~/Desktop/projects/monisuo
JAR_NAME="monisuo-1.0.jar"
PID_FILE="/tmp/monisuo_test.pid"
LOG_FILE="/tmp/monisuo_test.log"
echo "=========================================="
echo "审批订单一键测试"
echo "=========================================="
echo ""
# 进入项目目录
cd ${PROJECT_DIR}
# 1. 编译项目
echo "步骤1: 编译项目..."
mvn clean package -DskipTests > /dev/null 2>&1
if [ ! -f "target/${JAR_NAME}" ]; then
echo "❌ 编译失败"
exit 1
fi
echo "✅ 编译成功"
echo ""
# 2. 停止旧进程
echo "步骤2: 停止旧进程..."
if [ -f "${PID_FILE}" ]; then
OLD_PID=$(cat ${PID_FILE})
if ps -p ${OLD_PID} > /dev/null 2>&1; then
echo "停止进程 ${OLD_PID}..."
kill -9 ${OLD_PID} 2>/dev/null
sleep 2
fi
rm -f ${PID_FILE}
fi
echo "✅ 清理完成"
echo ""
# 3. 启动服务(后台运行,日志输出到文件)
echo "步骤3: 启动后端服务..."
echo "日志文件: ${LOG_FILE}"
nohup java -jar target/${JAR_NAME} > ${LOG_FILE} 2>&1 &
NEW_PID=$!
echo ${NEW_PID} > ${PID_FILE}
echo "进程ID: ${NEW_PID}"
echo ""
# 4. 等待服务启动
echo "步骤4: 等待服务启动..."
MAX_WAIT=30
WAIT_COUNT=0
while [ ${WAIT_COUNT} -lt ${MAX_WAIT} ]; do
if curl -s http://localhost:5010/admin/login > /dev/null 2>&1; then
echo "✅ 服务启动成功"
break
fi
echo -n "."
sleep 1
WAIT_COUNT=$((WAIT_COUNT + 1))
done
echo ""
if [ ${WAIT_COUNT} -eq ${MAX_WAIT} ]; then
echo "❌ 服务启动超时"
echo "查看日志: tail -50 ${LOG_FILE}"
exit 1
fi
echo ""
# 5. 运行测试
echo "步骤5: 运行审批测试..."
echo "=========================================="
bash ${PROJECT_DIR}/diagnose_approval.sh
echo "=========================================="
echo ""
# 6. 询问是否查看日志
echo "测试完成!"
echo ""
echo "📋 查看详细日志:"
echo " tail -100 ${LOG_FILE}"
echo ""
echo "🔍 搜索审批相关日志:"
echo " grep -A 50 '审批订单开始' ${LOG_FILE}"
echo ""
echo "🛑 停止服务:"
echo " kill ${NEW_PID}"
echo ""