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