NAC_Blockchain/nac-integration-tests/scripts/run_all_tests.sh

188 lines
5.2 KiB
Bash
Executable File

#!/bin/bash
# NAC集成测试 - 运行所有测试
set -e
echo "========================================="
echo "NAC集成测试系统 - 运行所有测试"
echo "========================================="
echo ""
# 颜色定义
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 测试结果统计
TOTAL_TESTS=0
PASSED_TESTS=0
FAILED_TESTS=0
# 记录开始时间
START_TIME=$(date +%s)
echo "📦 步骤1: 编译项目..."
if cargo build --release; then
echo -e "${GREEN}✓ 编译成功${NC}"
else
echo -e "${RED}✗ 编译失败${NC}"
exit 1
fi
echo ""
echo "🧪 步骤2: 运行单元测试..."
if cargo test --lib --release -- --test-threads=1; then
echo -e "${GREEN}✓ 单元测试通过${NC}"
else
echo -e "${RED}✗ 单元测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo ""
echo "🔗 步骤3: 运行集成测试..."
echo " - CBPP共识测试..."
if cargo test --test integration/cbpp_tests --release; then
echo -e "${GREEN} ✓ CBPP测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ CBPP测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - NVM虚拟机测试..."
if cargo test --test integration/nvm_tests --release; then
echo -e "${GREEN} ✓ NVM测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ NVM测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - ACC协议测试..."
if cargo test --test integration/acc_tests --release; then
echo -e "${GREEN} ✓ ACC测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ ACC测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - CSNP网络测试..."
if cargo test --test integration/csnp_tests --release; then
echo -e "${GREEN} ✓ CSNP测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ CSNP测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - 宪法系统测试..."
if cargo test --test integration/constitution_tests --release; then
echo -e "${GREEN} ✓ 宪法系统测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ 宪法系统测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo ""
echo "🎯 步骤4: 运行端到端测试..."
echo " - 交易流程测试..."
if cargo test --test e2e/transaction_flow --release; then
echo -e "${GREEN} ✓ 交易流程测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ 交易流程测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - 跨链桥接测试..."
if cargo test --test e2e/bridge_flow --release; then
echo -e "${GREEN} ✓ 跨链桥接测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ 跨链桥接测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - RWA交易测试..."
if cargo test --test e2e/rwa_exchange_flow --release; then
echo -e "${GREEN} ✓ RWA交易测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ RWA交易测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - 合规验证测试..."
if cargo test --test e2e/compliance_flow --release; then
echo -e "${GREEN} ✓ 合规验证测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ 合规验证测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo ""
echo "⚡ 步骤5: 运行性能测试..."
echo " - TPS测试..."
if cargo test --test performance/tps_test --release; then
echo -e "${GREEN} ✓ TPS测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ TPS测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - 并发测试..."
if cargo test --test performance/concurrent_test --release; then
echo -e "${GREEN} ✓ 并发测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ 并发测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - 压力测试..."
if cargo test --test performance/stress_test --release; then
echo -e "${GREEN} ✓ 压力测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ 压力测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo " - 稳定性测试(跳过长时间测试)..."
if cargo test --test performance/stability_test --release -- --skip test_24_hour_stability; then
echo -e "${GREEN} ✓ 稳定性测试通过${NC}"
PASSED_TESTS=$((PASSED_TESTS + 1))
else
echo -e "${RED} ✗ 稳定性测试失败${NC}"
FAILED_TESTS=$((FAILED_TESTS + 1))
fi
echo ""
# 计算总测试数
TOTAL_TESTS=$((PASSED_TESTS + FAILED_TESTS))
# 记录结束时间
END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
echo "========================================="
echo "测试完成!"
echo "========================================="
echo "总测试数: $TOTAL_TESTS"
echo -e "通过: ${GREEN}$PASSED_TESTS${NC}"
echo -e "失败: ${RED}$FAILED_TESTS${NC}"
echo "耗时: ${DURATION}"
echo "========================================="
# 如果有失败的测试,返回非零退出码
if [ $FAILED_TESTS -gt 0 ]; then
exit 1
fi
exit 0