通过Ant运行JUnits,并尝试在Jenkins中配置Cobertura代码覆盖率。

时间:2013-01-04 22:20:07

标签: eclipse ant junit jenkins cobertura

所以我在Eclipse中有一个java项目。我通过ant构建war文件。我可以从Eclipse,命令行或Jenkins调用它。我正在设置环境,以便尝试并保持所有这三种构建工作的方式,并尽可能少地改变环境以实现它。

所以我正在进行编译,创建war,生成javadoc,并通过我的ant build.xml运行junits

尝试将Cobertura代码覆盖率添加到混合中。

我已经安装了Jenkins for Cobertura,我现在正试图让junit运行与Cobertura合作,以正确地检测类并生成覆盖文件。

cobertura doc说开始时将任务定义如下。

<property name="cobertura.dir" value="C:/javastuff/cobertura" />

<path id="cobertura.classpath">
    <fileset dir="${cobertura.dir}">
        <include name="cobertura.jar" />
        <include name="lib/**/*.jar" />
    </fileset>
</path>

<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />

不喜欢C:\显然......我需要一个有效的cobertura.dir ......但是如何配置它并不是很明显。 Jenkins将插件的所有类放在这里

.jenkins /插件/的Cobertura

下面的文件结构如下。

drwxrwxr-x 2 vpbuild vpbuild 4096 Jan 4 10:42图片 drwxrwxr-x 3 vpbuild vpbuild 4096 12月15日12:36 META-INF -rw-rw-r-- 1 vpbuild vpbuild 0 Jan 4 10:41 .timestamp drwxrwxr-x 4 vpbuild vpbuild 4096 12月15日12:36 WEB-INF

所以如果这是我的cobertura.dir,那么这里没有定义lib子目录。在WEB-INF中,但是那里没有cobertura jar ......所以没有一个看起来很正确。

我还单独下载了cobertura jar,并把它放在ANT_HOME / lib中,希望能帮助让ANT更明显地看到cobertura任务,但是不确定这会对构建我需要做什么产生影响.XML。

任何人都有配置cobertura的经验,这样它就能以这种方式通过jenkins内外的ant运行吗? build.xml需要什么来实现它?

-Jim

1 个答案:

答案 0 :(得分:3)

Jenkins Cobertura插件仅处理并显示您的代码覆盖率结果;它不包括Cobertura工具本身。

您应该下载latest Cobertura binaries并将它们解压缩到C:\ javastuff \ cobertura目录中。然后你将有cobertura.jar加上一个lib子目录,其中包含进入cobertura.classpath的其他必需依赖项。