Jenkins CI集成

Jenkins CI是一个流行的持续集成工具。Coco可以在Jenkins下运行,并通过插件显示覆盖率随时间的变化。以下部分描述了必要的设置。

先决条件

获取许可证

Jenkins过程通常在另一个用户下运行,例如Linux上的jenkins或Windows上的SYSTEM。因此,当Coco在不同用户下运行时,最初将没有配置或可用的Coco许可证。

如何获取此许可证将在以下部分中描述。下一部分将描述使用许可证服务器的用法。

安装节点锁定许可证

为了生成许可证,需要从jenkins账户运行Coco许可证工具。这取决于Jenkins服务器是否有互联网连接,有两种方法。

  • 有互联网连接

    您需要从froglogic获取一个激活码。使用此激活码,创建一个新的Jenkins项目,在该项目下仅运行(在Microsoft® Windows上)以下命令

    <Windows Coco>\cocolic --fetch-license-key=<activation code>

    在Linux™和macOS下,该行变为

    <cocobin>/cocolic --fetch-license-key=<activation code>

    注意:<cocobin>是包含Coco二进制文件的目录。在Linux下通常是/opt/SquishCoco/bin,而在macOS下通常是/Applications/SquishCoco

    如果Jenkins服务器通过代理连接到互联网,则需要额外的选项来指定代理。有关详细信息,请参阅cocolic – 许可证激活

    现在构建此项目。在Jenkins的控制台输出窗口页面上,您可以看到cocolic是否成功。

  • 没有互联网连接

    在此您可以离线创建一个机器ID,然后froglogic根据该ID生成一个授权密钥。这个密钥将在下一步安装到服务器上。

    要创建机器ID,创建一个Jenkins项目,在Windows下执行以下命令:

    (Windows Coco)\cocolic --machine-identifier

    在Linux和macOS下,这会变成:

    (cocobin)/cocolic --machine-identifier

    构建项目时,构建控制台的输出将包含机器ID。

    将机器ID发送给froglogic。我们将向您发送授权密钥。现在创建一个只包含以下命令的Jenkins项目,并对其进行构建:

    (Windows Coco)\cocolic --license-key=(您的密钥)

    在Linux™和macOS下,这会变成:

    (cocobin)/cocolic --license-key=(您的密钥)

使用授权服务器

要使用Coco与授权服务器一起使用,创建一个新的Jenkins CI项目,只在Microsoft Windows下运行以下命令:

(Windows Coco)\cocolic --license-server=(主机):(端口)

其中(主机)(端口)指的是授权服务器(见 cocolic – 授权激活)。如果使用默认端口,可以省略冒号和端口。

在Linux和macOS下,这会变成:

(cocobin)/cocolic --license-server=(主机):(端口)

然后安装授权。

获取EMMA插件

Coco使用EMMA-XML格式将覆盖率结果传达给Jenkins。Jenkins需要一个插件来显示EMMA数据。我们从 Coco下载中心 获取EMMA插件的分支版本。它打包成一个名为cocoemma-latest.hpi的文件,可以从Jenkins的 高级 选项卡、插件管理器 中的 部署插件 操作安装。

安装Jenkins EMMA插件

将项目适配到Jenkins

我们假设您已经可以在Jenkins下编译和运行项目,并且也可以生成覆盖率信息,但在Jenkins下还没有生成。

安装授权后,代码覆盖率应该现在可以在Jenkins下工作。

现在必须配置构建过程,以便生成一个包含所有执行数据的单个.csmes文件。这是通过cmcsexeimport完成的。

现在扩展构建过程,以便在最后生成EMMA-XML格式的报告。这是通过调用以下命令完成的:

(Windows Coco)cmreport -m project.csmes --emma=report.xml

其中project.csmes必须替换为您的结果文件名。

然后我们使用插件来显示report.xml文件中的数据。为此,选择Jenkins项目的配置部分,并添加一个后构建操作。由于插件已安装,添加后构建操作菜单中有一个条目记录Emma覆盖率报告。选择它,并在包含Emma XML报告的文件夹或文件字段中输入report.xml

在下次构建后,将生成覆盖率报告。

使用Jenkins CI从report.html生成覆盖率报告

假设构建已启动、运行并成功,并且插件可以找到Emma XML报告,我们应该看到如下内容:

覆盖率报告按钮

现在我们可以点击覆盖率报告按钮来查看覆盖率结果。XML数据以带有进度条表格的形式呈现。

Jenkins EMMA Coco覆盖率报告

Coco v7.2.0©2024 The Qt Company Ltd.
Qt及其相关标志是芬兰Qt公司以及全球其他国家的商标。所有其他商标均为各自所有者的财产。