更新时间:2026-01-19 GMT+08:00
分享

生成单元测试报告

该步骤用于解析用户生成的单元测试结果文件,并生成可视化报告。(仅支持图形化构建。)

支持的单元测试文件大小最大为10M。

前提条件

在执行“单元测试报告”步骤前,需已生成测试结果文件,并且该文件框架符合编译构建服务支持的框架类型。

图形化构建

配置构建步骤中,添加“单元测试报告”构建步骤,参考表1配置参数。
表1 单元测试报告参数说明

参数

说明

步骤显示名称

构建步骤的名称,可自定义修改。

  • 支持中文、英文、数字、“-”“_”、英文逗号、英文分号、英文冒号、“.”“/”、圆括号(中英文)。
  • 字符长度范围为1~128。

测试报告路径

填写测试报告存放路径。需填写相对于项目根目录的相对路径,如“target/surefire-reports/TEST*.xml”。路径中支持*和**通配符匹配多级目录。

发布覆盖率报告

单元测试覆盖率报告用来衡量代码中哪些部分已经被单元测试覆盖,哪些部分还没有被覆盖。

  • 是:发布覆盖率报告。

    同时需设置以下两个参数:

    • 覆盖率报告格式:选择覆盖率报告格式。目前仅支持JaCoCo和Cobertura工具生成的报告文件格式。
    • 覆盖率报告路径:需填写基于项目根目录的相对路径,例如“**/site/jacoco”,路径中支持*和**通配符匹配多级目录。
  • 否:不发布覆盖率报告。

工具版本

根据用户实际开发环境的需要,选择对应的工具版本。

CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以制作镜像并推送到SWR仓库

失败后是否继续运行

当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。

CMake构建示例

  1. 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"
    )
  2. 生成单元测试报告后,在“单元测试报告”步骤中填写上传报告路径“**/test_report.xml”

  3. 基于gcovr生成cobertura风格的单元测试覆盖率报告,参考命令如下。

    当前gcovr工具只在最新的CMkae工具版本(cmake3.26.5-gcc13.1.0)中进行了内置。

    gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml --root .
  4. 生成覆盖率报告后,在“单元测试报告”步骤中填写上传报告路径。

Python构建示例

  1. 生成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
  2. 生成报告后,在“单元测试报告”步骤中填写上传报告路径,参考如下。

相关文档