106 lines
3.0 KiB
Bash
Executable File
106 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Batch 2 测试运行脚本
|
||
|
||
echo "======================================"
|
||
echo "GoMog Batch 2 单元测试"
|
||
echo "======================================"
|
||
echo ""
|
||
|
||
# 设置颜色
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 计数器
|
||
TOTAL_TESTS=0
|
||
PASSED_TESTS=0
|
||
FAILED_TESTS=0
|
||
|
||
# 测试函数
|
||
run_test() {
|
||
local test_name=$1
|
||
local test_path=$2
|
||
|
||
echo -e "${YELLOW}运行测试:${test_name}${NC}"
|
||
|
||
# 检查 Go 是否安装
|
||
if ! command -v go &> /dev/null; then
|
||
echo -e "${RED}错误:Go 未安装,跳过测试${NC}"
|
||
return 2
|
||
fi
|
||
|
||
cd /home/kingecg/code/gomog
|
||
|
||
# 运行测试
|
||
output=$(go test -v ${test_path} -run "${test_name}" 2>&1)
|
||
exit_code=$?
|
||
|
||
TOTAL_TESTS=$((TOTAL_TESTS + 1))
|
||
|
||
if [ $exit_code -eq 0 ]; then
|
||
echo -e "${GREEN}✓ 通过${NC}"
|
||
PASSED_TESTS=$((PASSED_TESTS + 1))
|
||
else
|
||
echo -e "${RED}✗ 失败${NC}"
|
||
echo "$output" | tail -20
|
||
FAILED_TESTS=$((FAILED_TESTS + 1))
|
||
fi
|
||
|
||
echo ""
|
||
}
|
||
|
||
# 运行所有 Batch 2 相关测试
|
||
echo "1. 测试 \$expr 操作符..."
|
||
run_test "TestExpr" "./internal/engine/... -run TestExpr"
|
||
|
||
echo "2. 测试 \$jsonSchema 验证..."
|
||
run_test "TestJSONSchema" "./internal/engine/... -run TestJSONSchema"
|
||
|
||
echo "3. 测试投影操作符..."
|
||
run_test "TestProjection" "./internal/engine/... -run TestProjection"
|
||
|
||
echo "4. 测试 \$switch 条件表达式..."
|
||
run_test "TestSwitch" "./internal/engine/... -run TestSwitch"
|
||
|
||
echo "5. 测试 \$setOnInsert 更新..."
|
||
run_test "TestApplyUpdateSetOnInsert" "./internal/engine/... -run TestApplyUpdateSetOnInsert"
|
||
|
||
echo "6. 测试数组位置操作符..."
|
||
run_test "TestArrayPositional" "./internal/engine/... -run TestArrayPositional"
|
||
|
||
echo "7. 测试 MemoryStore upsert..."
|
||
run_test "TestMemoryStoreUpdateWithUpsert" "./internal/engine/... -run TestMemoryStoreUpdateWithUpsert"
|
||
|
||
echo "8. 测试 MemoryStore arrayFilters..."
|
||
run_test "TestMemoryStoreUpdateWithArrayFilters" "./internal/engine/... -run TestMemoryStoreUpdateWithArrayFilters"
|
||
|
||
echo "9. 测试 HTTP API upsert..."
|
||
run_test "TestHTTPUpdateWithUpsert" "./internal/protocol/http/... -run TestHTTPUpdateWithUpsert"
|
||
|
||
echo "10. 测试 HTTP API 投影..."
|
||
run_test "TestHTTPFindWithProjection" "./internal/protocol/http/... -run TestHTTPFindWithProjection"
|
||
|
||
echo "11. 测试聚合管道集成..."
|
||
run_test "TestAggregationPipelineIntegration" "./internal/engine/... -run TestAggregationPipelineIntegration"
|
||
|
||
echo "12. 测试复杂查询组合..."
|
||
run_test "TestQueryWithExprAndJsonSchema" "./internal/engine/... -run TestQueryWithExprAndJsonSchema"
|
||
|
||
# 汇总结果
|
||
echo "======================================"
|
||
echo "测试结果汇总"
|
||
echo "======================================"
|
||
echo -e "总测试数:${TOTAL_TESTS}"
|
||
echo -e "${GREEN}通过:${PASSED_TESTS}${NC}"
|
||
echo -e "${RED}失败:${FAILED_TESTS}${NC}"
|
||
|
||
if [ $FAILED_TESTS -eq 0 ]; then
|
||
echo -e "${GREEN}所有测试通过!${NC}"
|
||
exit 0
|
||
else
|
||
echo -e "${RED}部分测试失败,请检查输出${NC}"
|
||
exit 1
|
||
fi
|