Cobertura coverage reports to Jenkins."> Cobertura | 必威国际有限公司Jenkins插件 - betway必威足彩

Cobertura

ID:<!-- -->cobertura

目前的想法是将这个插件合并成更通用的覆盖插件。帮助感激。

这个插件允许您捕获代码覆盖率报告Cobertura.必威国际有限公司詹金斯会生成报道的趋势报告。Cobertura插件可以在这里下载

配置Cobertura插件

  1. 安装cobertura插件(通过Manage Jenkins -> Manage 必威国际有限公司Plugins)
  2. 配置项目的构建脚本以生成cobertura XML报告(参见下面使用Ant和Maven2的示例)
  3. 启用“发布Cobertura覆盖报告”发布者
  4. 指定生成coverage.xml报告的目录。
  5. (可选)配置覆盖率度量目标以反映您的目标。

配置构建工具

下面是常用构建工具的配置细节。请随时更新这与更正或补充。

Maven 2

快速配置

你可以在你的“pom.xml”文件中启用“cobertura”分析,或者只是告诉Jenkins运行“cobertura”目标。必威国际有限公司

如果你不想改变你的pom文件,只需将目标“cobertura:cobertura”添加到你的Jenkins Maven项目中。必威国际有限公司

单项目

如果您正在使用单个模块配置,请将以下内容添加到pomo .xml中。这将导致每次运行“mvn包”时调用cobertura。

<项目…>……<构建>…<插件>…<插件> < groupId > org.codehaus。mojo cobertura-maven-plugin 2.5.1   xml     package  cobertura   …< /插件>…< /构建>…> < /项目

执行cobertura只从Jenkins使用配置文件必威国际有限公司

只有在Jenkins中运行时,才使用maven配置文件来执行插件,这样可以减少开发人员机器的负载。必威国际有限公司下面的配置显示了如何根据Jenkins启动maven时的信息启用插件。必威国际有限公司

<项目…>……<文件> < !——J必威国际有限公司enkins默认定义了一个属性BUILD_NUMBER,用于启用配置文件。——>  必威国际有限公司jenkins   env. env. env. env. envBUILD_NUMBER < /名称> < /属性> < /激活> <构建> <插件> <插件> < groupId > org.codehaus。mojo cobertura-maven-plugin 2.2   xml     package  cobertura      …> < /项目

项目层次结构

如果你正在为所有的Maven2模块使用一个公共的父模块,你可以将插件配置移动到公共模块的pluginManagement部分...

<项目…>……<构建>…< pluginManagement > <插件>…<插件> < groupId > org.codehaus。mojo cobertura-maven-plugin 2.2   xml     package  cobertura   …< /插件> < / pluginManagement >…< /构建>…> < /项目

并添加插件组和工件到孩子

<项目…>……<构建>…<插件>…<插件> < groupId > org.codehaus。mojo cobertura-maven-plugin …< /插件>…< /构建>…> < /项目

执行cobertura只从Jenkins使用配置文件必威国际有限公司

强烈建议禁用cobertura插件,只在Jenkins内部使用它,以减少开发人员机器的工作负载。必威国际有限公司以下摘录自演示如何这样做:

<项目…>……<文件> < !——J必威国际有限公司enkins默认定义了一个属性BUILD_NUMBER,用于启用配置文件。——>  必威国际有限公司jenkins   env. env. env. env. envBUILD_NUMBER < /名称> < /属性> < /激活> <构建> < pluginManagement > <插件> <插件> < groupId > org.codehaus。mojo cobertura-maven-plugin 2.2   xml     package  cobertura       ...> < /项目

现在,你的父母只使用插件管理部分,如果它是从Jenkins内部运行的,你需要儿童poms适应:必威国际有限公司

<项目…>……<!如果我们在詹金斯运行使用cobertura。必威国际有限公司——>   必威国际有限公司jenkins   env. env. env. env. env。BUILD_NUMBER < /名称> < /属性> < /激活> <构建> <插件> <插件> < groupId > org.codehaus。mojo cobertura-maven-plugin     …> < /项目

蚂蚁

您必须首先使用taskdef语句告诉Ant有关Cobertura Ant任务的信息。最好的地方是build.xml脚本的顶部,在任何目标语句之前。

">
<属性名= " cobertura。C:/javastuff/cobertura" />  < fileset dir = " $ {cobertura。Dir}">     

你需要测试JUnit将要测试的类(而不是测试类本身):

">
< cobertura-instrument todir = " ${检测。dir} " > <忽略regex = " org.apache.log4j。*" />  <包括name = " * * / * . class " / > <排除name = " * * / * Test.class " / > < /文件集> < fileset dir = " $ {guiclasses。dir} " > <包括name = " * * / * . class " / > <排除name = " * * / * Test.class " / > < /文件集> < fileset dir = " ${坛子。Dir}">    .jar

下面是对经过修改以使用Cobertura的JUnit ant任务的示例调用。

">
 < !——指定要使用的覆盖率数据文件的名称。下面指定的值是默认值。——> < sysproperty关键= " net.sourceforge.cobertura。数据文件“文件= " $ {basedir} / cobertura。ser " / > < !注意类路径的顺序:插装的类在原始(未插装的)类之前。这是很重要的。——> < = " ${仪器类路径位置。}" />  < !——插装类引用Cobertura运行时使用的类,所以Cobertura及其依赖项必须在类路径上。——> <类路径refid = " cobertura。类路径" />        

最后,您需要一个任务来生成xml报告,其中'destdir'是您希望生成报告(cover .xml)的地方。

你的cobertura。Ser被生成到模块根目录。

Srcdir是*.java文件所在的目录。如果在一个构建过程中使用多个模块,如果使用简单的srcdir参数,则需要包含模块名。如果使用fileset,则不需要包含模块名。

You can use multiple source directories this way: ">
< cobertura-report格式= " xml”destdir = " $ {coveragereport。dir}”srcdir = " $ {src。 < fileset dir = " $ {src.dir.java} " > <包括name = " * * / * . java " / > < /文件集> < fileset dir = " $ {src.dir。主要}" > <包括name = " * * / * . java " / > < /文件集> < / cobertura-report >

Gradle

在gradle中运行Cobertura,复制自Piotr Gabryanczyk的帖子http://piotrga.wordpress.com/2010/04/17/gradle-cobertura-integration-revisited/并调整以工作在gradle 1.5:

创建cobertura。在你的项目根目录中的Gradle:

logger.info "配置Cobertura插件"配置{coberturaRuntime {extendsFrom testRuntime}}依赖{coberturaRuntime 'net. sourceforge.net . Cobertura: Cobertura:1.9.4'} def serFile="${project.buildDir}/ Cobertura . "ser“def类= " ${项目。}/classes/main" def classesCopy="${classes}-copy"任务cobertura(type: Test){dependencies {testRuntime 'net. sourceforge.net:cobertura:1.9.4'} systemProperty "net. sourceforge.net .cobertura: 1.9.4'}datafile", serFile} cobertura。doFirst{记录器。ant {delete(file:serFile, failonerror:false) delete(dir: classesCopy, failonerror:false) copy(todir: classesCopy) {fileset(dir: classes)} taskdef(resource:'tasks. class ');属性的类路径:configurations.coberturaRuntime.asPath)'cobertura-instrument'(数据文件:serFile) {fileset(dir: classes,包括:"**/*.class",不包括:"**/*Test.class")}}doLast{if (new File(classesCopy).exists()){//创建html cobertura报告ant.'cobertura-report'(destdir:"${project. lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang . lang。//创建xml cobertura报告ant.'cobertura-report'(destdir:"${project. html ", srcdir:"src/main/java", datafile: serFile)}/cobertura", format:'xml', srcdir:"src/main/java", datafile: serFile)move(file: classesCopy, tofile: classes)}}

Cobertura申请。在build。Gradle中

任一(如果是单个项目构建)

应用插件:'java'

或者(如果多项目构建)

"${parent.projectDir.canonicalPath}/cobertura. "gradle "}

版本历史

1.12.1版本(10 - 5 - 2018)

版本1.12 (12 - 11 - 2017)

版本1.11(09 - 8月- 2017)

  • 增加了覆盖目标的管道支持(问题# 67
  • 即使作业失败,也只在stable为false时发布作业(问题# 59

版本1.10(25 - 4月- 2017)

版本1.9.8 (8 - 5 - 2016)

版本1.9.7(4 - 3月- 2015)

版本1.9.6 (25 - 10 - 2014)

版本1.9.5(24 - 4月- 2014)

  • 添加覆盖列,显示视图中的行/分支覆盖

版本1.9.4(17 - 4月- 2014)

1.9.3版本(16 - 10 - 2013)

  • 文件描述符泄漏的更多修复

1.9.2版本(9 - 8月- 2013)

版本1.9.1 (14 - 6 - 2013)

版本1.9(28 - 4月- 2013)

版本1.8(15 - 12月- 2012)

1.7.1上版本(17 - 10 - 2012)

版本1.7 (11 - 10 - 2012)

版本1.6(17 - 8月- 2012)

版本1.5 (20 - 5 - 2012)

版本1.4 (5 - 5 - 2012)

1.3版本(13 - 8月- 2011)

  • 更改,默认输出格式为字母顺序
  • 将< >之前…标签围绕源代码内容,以防cobertura目录链接到源代码
  • 增加源编码说明

版本1.2(25 - 2月- 2011)

  • 更新詹金斯必威国际有限公司

版本1.1(11 - 1月- 2011)

版本1.0(30 - 2010年7月)

0.8.11版本外观(22 - 3月- 2010)

版本0.8.10 (15 - 1 - 2010)

  • 重新组织数据结构以允许处理较大的结果文件
  • 使用EnumMap和EnumSet可以更紧凑地表示内存中的数据
  • 更新最新Hudson的代码
  • 如所述更改报告颜色在这里
  • 国际化消息(必威国际有限公司詹金斯- 4920

版本0.8.9 (8 - 7 - 2009)

版本0.8.8 (11 - 6 - 2009)

版本0.8.7(2009年4 - 6月)

版本0.8.6 (7 - 5 - 2009)

版本0.8.4 (21 - 10 - 2007)

  • ???

版本0.8.3 (12 - 10 - 2007)

版本0.8.2(4 - 10月- 2007)

版本0.8.1 (28 - 9 - 2007)

  • 修复了在JDK 1.5下运行的问题
  • 修正了查找源代码的一些问题

版本0.8 (20 - 9 - 2007)

  • 与JDK 5和JDK 6一起工作(删除了在修复回归时引入的JDK依赖)

版本0.7 (20 - 9 - 2007)

  • 在0.5中引入了更好的回归修正

版本0.6 (20 - 9 - 2007)

  • 修正了0.5中引入的回归

版本0.5 (20 - 9 - 2007)

  • 现在用内置的源代码绘画!(源代码仅在文件级提供,只适用于最新的稳定构建)。

请注意条件覆盖率是每个构建中聚合的所有cobertura报告的最高覆盖率。因此,如果你有两个报告,一个只涵盖了条件句的50%,另一个涵盖了不同的25%,有条件的覆盖率将报告为50%,而不是你可以争辩它应该是75% !

  • 当构建历史中存在破裂的构建时,趋势图现在可以工作。

版本0.4(29 - 8月- 2007)

  • 对多报告聚合的初始支持(如果个别类的报告重叠,总数可能会不正确——我需要实现源文件绘制支持来消除这个问题。然而,这正是文件解析的方式。这个版本将正确地存档文件,所以当它被修复时,你的历史记录应该正确地报告)

版本0.3(8月28 - - 2007)

  • 修正了NPE解析cobertura 1.8版本生成的一些cobertura报告。
  • 项目级别报告现在应该可以工作了(除非正在进行构建)

版本0.2(8月28 - - 2007)

  • 修复了配置问题(没有持久化配置细节)

  • 更改了运行状况报告配置(现在处理更通用的代码)

  • 坡的报告

  • 已知问题:
    • 项目级别报告并不适用于所有情况
    • 类和方法级报告应该显示源代码,如果源代码可用(在工作区中)

版本0.1(27 - 8月- 2007)

  • 最初的版本。只解析xml报告。UI中有一些粗糙的边缘。