生成单元测试报告
该步骤用于解析用户生成的单元测试结果文件,并生成可视化报告。(仅支持图形化构建。)
支持的单元测试文件大小最大为10M。
前提条件
在执行“单元测试报告”步骤前,需已生成测试结果文件,并且该文件框架符合编译构建服务支持的框架类型。
图形化构建
|
参数 |
说明 |
|---|---|
|
步骤显示名称 |
构建步骤的名称,可自定义修改。
|
|
测试报告路径 |
填写测试报告存放路径。需填写相对于项目根目录的相对路径,如“target/surefire-reports/TEST*.xml”。路径中支持*和**通配符匹配多级目录。 |
|
发布覆盖率报告 |
单元测试覆盖率报告用来衡量代码中哪些部分已经被单元测试覆盖,哪些部分还没有被覆盖。 |
|
工具版本 |
根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以制作镜像并推送到SWR仓库。 |
|
失败后是否继续运行 |
当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。 |
CMake构建示例
- CMakeLists.txt文件中参考以下命令,用于生成单元测试报告。
# 创建名为 unit_test 的可执行文件 add_executable(unit_test test/unit_test.cpp) target_link_libraries(unit_test ${CMAKE_PROJECT_NAME}_lib gtest gtest_main pthread) # 启用测试功能 enable_testing() # 添加测试用例 add_test(NAME unit_test COMMAND unit_test) # 添加生成测试报告的自定义目标 add_custom_target(report COMMAND unit_test --gtest_output=xml:${CMAKE_BINARY_DIR}/test_report.xml COMMAND echo "Test report generated at ${CMAKE_BINARY_DIR}/test_report.xml" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} DEPENDS unit_test COMMENT "Generating unit test report" ) - 生成单元测试报告后,在“单元测试报告”步骤中填写上传报告路径“**/test_report.xml”。

- 基于gcovr生成cobertura风格的单元测试覆盖率报告,参考命令如下。
当前gcovr工具只在最新的CMkae工具版本(cmake3.26.5-gcc13.1.0)中进行了内置。
gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml --root .
- 生成覆盖率报告后,在“单元测试报告”步骤中填写上传报告路径。

Python构建示例
- 生成Python单元测试报告和覆盖率报告命令参考如下。
pip install pytest pip install pytest-cov mkdir -p reports # 报告生成 pytest -v tests/test_yfinance_client.py --cov=yfinance_client --cov-report=xml:reports/coverage.xml --junitxml=reports/junit-report.xml
- 生成报告后,在“单元测试报告”步骤中填写上传报告路径,参考如下。
