【问题标题】:Adding lcov to Hudson将 lcov 添加到 Hudson
【发布时间】:2023-10-28 12:45:01
【问题描述】:

这里对哈德逊来说相当陌生。我想知道,如何将lcov 与它集成?如何将 tarball 安装到 Hudson 作业中?

【问题讨论】:

    标签: hudson code-coverage gcov lcov


    【解决方案1】:

    Jenkins(或 Hudson)可以在构建过程中运行您可以从命令行运行的任何内容。

    如果您特别想使用 LCOV,您可以:

    • 在构建服务器上安装 LCOV,添加执行它的构建步骤并存档工件。
    • 将 LCOV 安装添加到您的存储库中并添加类似的构建步骤。

    如果您正在使用代码覆盖工具,Cobertura 插件可能就是您正在寻找的。

    【讨论】:

    • 我使用gcovr 创建了 Cobertura 插件正在寻找的 xml...
    • gcovr 有很多问题。它似乎想做自己的事而不是我想要的
    • 另一个选项是 lcov_cobertura 脚本,用于将 LCOV 结果转换为与 Cobertura 兼容的 XML,用于 Jenkins 的 Cobertura 插件。
    【解决方案2】:

    我更喜欢 Cobertura 插件而不是 lcov,因为它直接在每个构建报告中显示结果,并且不会复制每个构建的整个源代码。他们提供的信息非常相似。

    不幸的是,它不直接支持 gcov,但是有一个名为 gcovr 的 Python 脚本可以为 Jenkins 生成与 Cobertura 兼容的输出。 This article 解释了如何设置它。

    您还可以在每次构建时运行这两个覆盖工具,因为它们都使用来自 gcc 的相同输入。

    【讨论】:

    • Cobertura 能否与 Objective-C 程序一起工作 - 特别是 iOS 应用程序?