114 lines
3.7 KiB
Bash
114 lines
3.7 KiB
Bash
#!/bin/bash
|
|
# ================================================================================================
|
|
# Audio Backend - 测试运行脚本
|
|
# ================================================================================================
|
|
# 描述: 运行所有类型的测试(单元测试、集成测试、性能测试)
|
|
# ================================================================================================
|
|
|
|
# 设置颜色输出
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[0;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # 无颜色
|
|
|
|
# 脚本所在的目录路径
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
# 项目根目录
|
|
ROOT_DIR="$(dirname "$(dirname "$(dirname "$SCRIPT_DIR")")")"
|
|
# 构建目录
|
|
BUILD_DIR="$ROOT_DIR/build"
|
|
# 测试结果目录
|
|
TEST_RESULTS_DIR="$ROOT_DIR/test-results"
|
|
|
|
# 打印脚本信息
|
|
echo -e "${BLUE}=========================================================${NC}"
|
|
echo -e "${BLUE} 音频后端测试运行脚本 ${NC}"
|
|
echo -e "${BLUE}=========================================================${NC}"
|
|
echo -e "${YELLOW}项目根目录: ${ROOT_DIR}${NC}"
|
|
echo -e "${YELLOW}构建目录: ${BUILD_DIR}${NC}"
|
|
echo -e "${YELLOW}测试结果录: ${TEST_RESULTS_DIR}${NC}"
|
|
echo ""
|
|
|
|
# 确保测试结果目录存在
|
|
mkdir -p "$TEST_RESULTS_DIR"
|
|
|
|
# 检查构建目录是否存在
|
|
if [ ! -d "$BUILD_DIR" ]; then
|
|
echo -e "${RED}错误: 构建目录不存在。请先运行构建脚本。${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 准备测试环境
|
|
echo -e "${BLUE}准备测试环境...${NC}"
|
|
"$SCRIPT_DIR/prepare_test_env.sh"
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${RED}准备测试环境失败${NC}"
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}测试环境准备完成${NC}"
|
|
echo ""
|
|
|
|
# 定义测试运行函数
|
|
run_test_suite() {
|
|
local suite_name=$1
|
|
local script_name=$2
|
|
|
|
echo -e "${BLUE}开始运行${suite_name}...${NC}"
|
|
"$SCRIPT_DIR/$script_name"
|
|
|
|
local result=$?
|
|
if [ $result -eq 0 ]; then
|
|
echo -e "${GREEN}${suite_name}通过${NC}"
|
|
return 0
|
|
else
|
|
echo -e "${RED}${suite_name}失败 (退出码: $result)${NC}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# 运行单元测试
|
|
unit_tests_result=0
|
|
run_test_suite "单元测试" "run_unit_tests.sh"
|
|
unit_tests_result=$?
|
|
echo ""
|
|
|
|
# 运行集成测试
|
|
integration_tests_result=0
|
|
run_test_suite "集成测试" "run_integration_tests.sh"
|
|
integration_tests_result=$?
|
|
echo ""
|
|
|
|
# 运行性能测试
|
|
performance_tests_result=0
|
|
run_test_suite "性能测试" "run_performance_tests.sh"
|
|
performance_tests_result=$?
|
|
echo ""
|
|
|
|
# 生成覆盖率报告
|
|
echo -e "${BLUE}生成测试覆盖率报告...${NC}"
|
|
"$SCRIPT_DIR/generate_coverage.sh"
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${YELLOW}警告: 覆盖率报告生成失败${NC}"
|
|
else
|
|
echo -e "${GREEN}覆盖率报告生成完成${NC}"
|
|
fi
|
|
echo ""
|
|
|
|
# 测试结果汇总
|
|
echo -e "${BLUE}=========================================================${NC}"
|
|
echo -e "${BLUE} 测试结果汇总 ${NC}"
|
|
echo -e "${BLUE}=========================================================${NC}"
|
|
echo -e "单元测试: $([ $unit_tests_result -eq 0 ] && echo -e "${GREEN}通过${NC}" || echo -e "${RED}失败${NC}")"
|
|
echo -e "集成测试: $([ $integration_tests_result -eq 0 ] && echo -e "${GREEN}通过${NC}" || echo -e "${RED}失败${NC}")"
|
|
echo -e "性能测试: $([ $performance_tests_result -eq 0 ] && echo -e "${GREEN}通过${NC}" || echo -e "${RED}失败${NC}")"
|
|
echo ""
|
|
|
|
# 整体测试结果
|
|
if [ $unit_tests_result -eq 0 ] && [ $integration_tests_result -eq 0 ] && [ $performance_tests_result -eq 0 ]; then
|
|
echo -e "${GREEN}所有测试通过!${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}测试失败!${NC}"
|
|
exit 1
|
|
fi |