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公司以及全球其他国家的商标。所有其他商标均为各自所有者的财产。