测试和CICD
本章节介绍QCOS的各类测试执行方式,包括单元测试、覆盖率测试、系统测试及代码格式与静态分析,推荐在容器环境中运行测试,也可和CICD集成。
通过容器环境运行测试
首先启动并进入qcos-sandbox容器环境:
./run-sandbox.sh
docker exec -it qcos-sandbox bash
代码/文档一键自动化检查
代码/文档一键自动化检查脚本
# 在qcos-sandbox容器内执行以下命令:
./cicd/run-cicd.sh
代码问题单项检查
如果不使用代码/文档一键自动化检查脚本, 也可以逐个单项进行检查 在qcos-sandbox容器内执行以下命令:
代码格式检查
./cicd/code-formatter.sh
注意 如果格式检查失败,可以手动改代码修复格式问题,也可以通过下列命令尝试自动修复:
./cicd/code-formatter.sh -f
代码静态检查
./cicd/code-linter.sh
注意 如果代码静态检查失败,可以手动改代码修复问题,也可以通过下列命令尝试自动修复:
./cicd/code-linter.sh -f
代码docstring检查
./cicd/docstring-check.sh
文档代码(markdown/rst)静态检查
./cicd/docs-linter.sh
注意 如果文档代码静态检查失败,可以手动改代码修复问题,也可以通过下列命令尝试自动修复:
./cicd/docs-linter.sh -f
执行单元测试(UT)
# 1. QCOS单元测试
./cicd/run-tests.sh -u all
# 2. QCOS CLIENT单元测试
./cicd/run-tests.sh -j all
执行覆盖率测试(Coverage)
确保代码覆盖率不低于:80%
# 1. QCOS代码覆盖率测试
./cicd/run-tests.sh -c all
# 2. QCOS CLIENT代码覆盖率测试
./cicd/run-tests.sh -e all
# 在qcos-sandbox容器内可通过以下方式查看覆盖率报告:
# 方式1:使用浏览器打开HTML报告(需容器内有浏览器或映射端口到宿主机)
# 浏览器访问 ./coverage_html/index.html
# 方式2:命令行模式查看简洁报告(可选)
coverage3 report -m
# 方式3:命令行通过links工具查看HTML报告(可选,需安装links)
links ./coverage_html/index.html
执行系统测试(ST) [可选]
# 1. 配置测试参数(修改被测服务的IP和端口)
vi /etc/qcos/qcos-st.toml # 调整API_SERVER_IP和API_SERVER_PORT为实际值
# 2. 运行系统测试
cd ./cicd
./run-tests.sh -s all