Atlassian Bamboo集成
Atlassian Bamboo是一个用于构建、测试和发布软件的持续集成服务器。Coco插件提供了与Bamboo的无缝集成。用户可以在Bamboo工作项中添加一个或多个Coco任务。每个Coco任务可以执行以下操作
- 将执行报告导入到运行时指标数据库中。
- 合并多个运行时指标数据库。
- 生成代码覆盖率报告。
用户可以选择执行以下一个、两个或所有三个操作。如果选择多个操作,它们将按上述顺序执行。
Coco任务配置概述
操作完成后,由Coco(如覆盖率报告)生成的文件可以保存,以便进行有效的故障排除。
代理配置
一个代理是一个运行Bamboo构建、测试和部署的服务。在Agent Capabilities设置中,用户可以指定哪些代理有资格运行Coco工作项。为了执行它,我们首先必须在代理主机上安装Coco。然后我们需要在配置项Bamboo管理 > 构建资源 > 代理 > 代理名称 > 代理特定能力中设置一个名为coco
的能力值,并将Coco安装目录作为此配置条目中的值。
稍后,在任务配置期间,我们需要设置是否存在一个coco
能力,作为工作项的要求。这样,只有在安装了Coco的代理上才会执行Coco工作项。
导入执行报告
此操作调用cmcsexeimport
将执行报告(.csexe
文件)导入到运行时指标数据库(.csmes
文件)。用户需要提供从Bamboo构建目录的绝对路径或相对路径(到.csexe
和.csmes
文件),以及执行标题。
当此操作被激活时,以下命令将在代理主机上执行
cmcsexeimport --debug --title
=<标题> -m
<CSMesFile> -e
<CSExeFile>
合并运行时指标数据库
此操作调用 cmmerge
来合并多个仪器数据库(.csmes
文件)。我们必须提供完整路径或相对路径到结果 .csmes
输出文件。如果我们提供相对路径(或仅文件名),则 .csmes
输出文件将相对 Bamboo 工作目录生成。需要指定 .csmes
输入文件。可以使用多个文件,用逗号分隔。
当此操作激活时,在代理主机上执行以下命令
cmmerge --verbose -o
<CSMesOutputFile> <CSMesInputFile1> ... <CSMesInputFileN>
此外,用户可以选择选项 仅合并参考文件中存在的仪器和执行
。此选项用于导入包含单元测试的 .csmes
文件。选择此选项时,用户必须提供 .csmes
参考文件。这将导致以附加选项 -i
执行 cmmerge
命令
cmmerge --verbose -o
<CSMesOutputFile> -i
<CSMesInputFile1> ... <CSMesInputFileN>
生成覆盖率报告
最后的操作通过运行 cmreport
来生成一个 HTML 报告。我们需要提供 .csmes
文件名(完整路径或相对路径)。必须包含先前导入的执行报告(即使用插件提供的第一个操作导入)的 .csmes
文件。
cmreport --title
=<BambooJobName> -m
<CSMesFile> --debug --html=coco/report.html
生成的报告将存储在 coco
子目录中,因此我们可以将 coco/**
作为复制模式定义工件。这使得我们可以在作业执行后在 Bamboo 中直接查看报告。报告标题使用 Bamboo 作业名称构建。
示例
单个执行的覆盖率报告
首先,我们需要激活操作 将执行报告导入仪器数据库 以将执行报告(.csexe
文件)导入仪器数据库(.csmes
文件)。最后,我们需要激活第三个操作,生成代码覆盖率报告。此操作的 .csexe
文件与第一个操作相同。
示例地址簿应用程序的 Coco 作业配置
单元测试的覆盖率报告
在这个场景中,我们希望为单元测试执行生成覆盖率报告。要在 Bamboo 中实现此目标,我们需要一个由两个 Coco 作业组成的作业。
在测试程序的构建之后,我们有两个 .csmes
文件:一个用于应用程序,另一个用于单元测试。我们需要合并这些仪器数据库,其中包含应用程序的 .csmes
文件作为合并期间的参考。合并步骤创建一个新的 .csmes
文件作为其输出文件。这是在以下任务中完成的
合并单元测试执行的 Coco 作业配置
在第二个任务中,将单元测试的执行报告导入 .csmes
文件(这是前一个任务的 .csmes
输出文件)。该任务的最后一个操作 生成代码覆盖率报告 生成 HTML 报告。
导入执行和生成报告的 Coco 作业配置
Coco v7.2.0©2024 Qt 公司有限公司。
Qt和相应的标志是芬兰Qt公司以及在全世界其他国家的注册商标。所有其他商标均属于其各自的产权人。