1

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

所以我目前正在通过我的 ant build.xml 进行编译、创建战争、生成 javadoc 和运行 junit

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

我已经为 Cobertura 安装了 Jenkins,现在我正在尝试让 junit 运行以与 Cobertura 一起工作,以正确检测类并生成覆盖文件。

cobertura 文档说首先定义任务如下。

<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 1 月 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 罐子……所以看起来都不对。

我还单独下载了 cobertura jar,并将其放在 ANT_HOME/lib 中,希望有助于使 cobertura 任务对 ANT 更可见,但不确定这将如何影响我需要执行的 build.xml。

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

-吉姆

4

1 回答 1

3

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

您应该下载最新的 Cobertura 二进制文件并将它们解压到您的 C:\javastuff\cobertura 目录中。然后,您将拥有 cobertura.jar 和一个 lib 子目录,其中包含进入 cobertura.classpath 的其他必需依赖项。

于 2013-01-04T22:26:43.800 回答