gomog/test_batch2.sh

106 lines
3.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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