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



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

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

尝试添加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 Jan 4 10:42 imagesdrwxrwxr-x 3 vpbuild vpbuild 4096 Dec 15 12:36 META-INF-rw-rw-r——1 vpbuild vpbuild 0 Jan 4 10:41 .timestampdrwxrwxr-x 4 vpbuild vpbuild 4096 Dec 15 12:36 WEB-INF

如果这是我的圆锥。这里没有定义lib子目录。在WEB-INF中有,但是那里没有cobertura jar…所以这一切似乎都不对。

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

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

吉姆

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

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

最新更新