test(cache): 修复CacheConfigTest边界值测试

- 修改 shouldVerifyCacheManager_withMaximumIntegerTtl 为 shouldVerifyCacheManager_withMaximumAllowedTtl
- 使用正确的最大TTL值(10080分钟,7天)而不是 Integer.MAX_VALUE
- 新增 shouldThrowException_whenTtlExceedsMaximum 测试验证边界检查
- 所有1266个测试用例通过
- 覆盖率: 指令81.89%, 行88.48%, 分支51.55%

docs: 添加项目状态报告
- 生成 PROJECT_STATUS_REPORT.md 详细记录项目当前状态
- 包含质量指标、已完成功能、待办事项和技术债务
This commit is contained in:
Your Name
2026-03-02 13:31:54 +08:00
parent 32d6449ea4
commit 91a0b77f7a
2272 changed files with 221995 additions and 503 deletions

182
.testing-autonomous/monitor.sh Executable file
View File

@@ -0,0 +1,182 @@
#!/bin/bash
# 🔍 Testing-Autonomous 实时监控脚本
# 用法: ./monitor.sh [project_path]
PROJECT_PATH=${1:-.}
LOG_FILE="$PROJECT_PATH/.testing-autonomous/progress.log"
COVERAGE_FILE="$PROJECT_PATH/target/site/jacoco/index.html"
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}🔍 Testing-Autonomous 实时监控${NC}"
echo "=================================="
echo "项目路径: $PROJECT_PATH"
echo "=================================="
echo ""
# 检查配置文件
if [ -f "$PROJECT_PATH/.testing-autonomous/config.yml" ]; then
echo -e "${GREEN}✅ 配置文件存在${NC}"
TARGET_COVERAGE=$(grep "instruction:" "$PROJECT_PATH/.testing-autonomous/config.yml" | head -1 | awk '{print $2}' | tr -d '%')
echo "🎯 目标覆盖率: ${TARGET_COVERAGE}%"
else
echo -e "${YELLOW}⚠️ 配置文件不存在,使用默认配置${NC}"
TARGET_COVERAGE=85
fi
echo ""
# 实时监控函数
monitor_progress() {
local last_coverage=0
local round=0
while true; do
clear
echo -e "${BLUE}🔍 Testing-Autonomous 实时监控${NC}"
echo "=================================="
echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "=================================="
echo ""
# 显示进度日志最近20行
if [ -f "$LOG_FILE" ]; then
echo -e "${BLUE}📊 最新进展:${NC}"
tail -20 "$LOG_FILE" 2>/dev/null | while read line; do
if [[ $line == *"ERROR"* ]] || [[ $line == *"失败"* ]]; then
echo -e "${RED}$line${NC}"
elif [[ $line == *"SUCCESS"* ]] || [[ $line == *"成功"* ]]; then
echo -e "${GREEN}$line${NC}"
elif [[ $line == *"WARNING"* ]] || [[ $line == *"警告"* ]]; then
echo -e "${YELLOW}$line${NC}"
else
echo "$line"
fi
done
echo ""
fi
# 解析当前覆盖率
if [ -f "$COVERAGE_FILE" ]; then
# 从JaCoCo报告中提取覆盖率
COVERAGE=$(grep -o 'ctr2>[0-9]*%' "$COVERAGE_FILE" | head -1 | grep -o '[0-9]*')
if [ ! -z "$COVERAGE" ]; then
echo -e "${BLUE}📈 覆盖率状态:${NC}"
echo "当前: ${COVERAGE}%"
echo "目标: ${TARGET_COVERAGE}%"
# 计算进度条
PROGRESS=$((COVERAGE * 50 / 100)) # 50字符宽度的进度条
BAR=$(printf '%*s' "$PROGRESS" | tr ' ' '█')
REMAINING=$((50 - PROGRESS))
EMPTY=$(printf '%*s' "$REMAINING" | tr ' ' '░')
if [ $COVERAGE -ge $TARGET_COVERAGE ]; then
echo -e "${GREEN}进度: [${BAR}${EMPTY}] ${COVERAGE}% ✅ 已达标${NC}"
else
echo -e "${YELLOW}进度: [${BAR}${EMPTY}] ${COVERAGE}% 🔄 继续优化${NC}"
fi
echo ""
# 显示差距
GAP=$((TARGET_COVERAGE - COVERAGE))
if [ $GAP -gt 0 ]; then
echo -e "${YELLOW}还需提升: ${GAP}%${NC}"
fi
fi
fi
# 检查测试执行状态
if [ -f "$PROJECT_PATH/target/surefire-reports" ]; then
TEST_COUNT=$(find "$PROJECT_PATH/target/surefire-reports" -name "*.txt" | wc -l)
echo -e "${BLUE}🧪 测试统计:${NC}"
echo "测试文件: $TEST_COUNT"
# 统计失败/错误
FAILURES=$(grep -l "FAILURE\|ERROR" "$PROJECT_PATH/target/surefire-reports"/*.txt 2>/dev/null | wc -l)
if [ $FAILURES -gt 0 ]; then
echo -e "${RED}❌ 失败: $FAILURES${NC}"
else
echo -e "${GREEN}✅ 全部通过${NC}"
fi
echo ""
fi
# 检查是否有卡住迹象
if [ -f "$LOG_FILE" ]; then
LAST_UPDATE=$(stat -c %Y "$LOG_FILE" 2>/dev/null || stat -f %m "$LOG_FILE" 2>/dev/null)
CURRENT_TIME=$(date +%s)
TIME_DIFF=$((CURRENT_TIME - LAST_UPDATE))
if [ $TIME_DIFF -gt 300 ]; then # 5分钟无更新
echo -e "${RED}⚠️ 警告: 已超过5分钟无进展可能卡住${NC}"
echo -e "${YELLOW} 自动恢复机制应该已经启动...${NC}"
fi
fi
echo ""
echo -e "${BLUE}==================================${NC}"
echo "按 Ctrl+C 退出监控"
echo -e "${BLUE}==================================${NC}"
# 每5秒刷新一次
sleep 5
done
}
# 快速统计模式
quick_stats() {
echo -e "${BLUE}📊 快速统计${NC}"
echo "=================================="
# 测试数量
if [ -d "$PROJECT_PATH/src/test/java" ]; then
TEST_FILES=$(find "$PROJECT_PATH/src/test/java" -name "*Test.java" | wc -l)
echo -e "测试文件: ${GREEN}$TEST_FILES${NC}"
fi
# 覆盖率
if [ -f "$COVERAGE_FILE" ]; then
COVERAGE=$(grep -o 'ctr2>[0-9]*%' "$COVERAGE_FILE" | head -1 | grep -o '[0-9]*')
if [ ! -z "$COVERAGE" ]; then
if [ $COVERAGE -ge $TARGET_COVERAGE ]; then
echo -e "覆盖率: ${GREEN}${COVERAGE}% ✅${NC}"
else
echo -e "覆盖率: ${YELLOW}${COVERAGE}% 🔄${NC} (目标: ${TARGET_COVERAGE}%)"
fi
fi
fi
# 配置文件状态
if [ -f "$PROJECT_PATH/.testing-autonomous/config.yml" ]; then
echo -e "配置: ${GREEN}✅ 已配置${NC}"
else
echo -e "配置: ${RED}❌ 未配置${NC}"
fi
echo "=================================="
}
# 主逻辑
case "${2:-monitor}" in
monitor)
monitor_progress
;;
stats)
quick_stats
;;
*)
echo "用法: $0 [project_path] [monitor|stats]"
echo ""
echo "示例:"
echo " $0 . monitor # 实时监控当前项目"
echo " $0 . stats # 快速统计"
echo " $0 /path/to/project monitor # 监控指定项目"
exit 1
;;
esac