我迁移几个项目从一只蚂蚁建立一家之一。建立服务器是、并将仍然存在,哈德森。

我已经有麻烦记录码的复盖面在哈德逊与cobertura由于 运行测试和记录两次的问题.

该项目是多模块,这将是好的,虽然没有要求,有一个汇总输出的代码复盖率的数据。

所有在所有解决方案我在寻找必须:

  • 运行自动化测试的所有模块和记录结果 一旦;
  • 显示各个模块代码复盖范围 在哈德森;
  • 可以很容易配置 一旦整个项目, 不在每一个模块。

该方案可以是基于Cobertura,或者艾玛,或任何其他java代码复盖率的工具。


更新:运行测试与艾玛还重复的结果和没有 merge 能力,所以它不是真正可用的多模块的基础之上。

有帮助吗?

解决方案

声纳 是一个很酷的工具,是很容易的综合与哈德森,我真的很喜欢它的组织与多模块项目。你应该试一试

alt文本http://sonar.codehaus.org/wp-content/uploads/2009/08/dashboard.png

其他提示

这一点予以解决了,但是这种方法,我使用的是使用 修改后的版本的专家cobertura插件 (这是 可以从他们的仓库).它提供了一个cobertura:生成报告的目标,以便可以插入cobertura:仪器和cobertura:产生报告到你的生命周期前后的运行测试,分别。那就把你的复盖范围的数据你想要而没有重复的试验执行/记录。

潜在的问题是,所有的非三叶家的复盖面插件我已经运行为都建立在这个想法的运行测试的复盖率分别从主要的测试执行在家生命周期。这个,很明显,结果在两套测试的执行。如果你使用一个自由的项目,则只能得到一定的测试记录(因为,即使是有两个试验的执行,只有一个复制的试验的输出),但是家项目类型实际上拦截行的魔力处决和记录测试的产出/结果,在试验执行时间,而不是所有的在一旦结束时建立作为自由的项目做。这有很多优点,但它也具有相当明显的缺点,即一个单一的测试得到执行的两次被计作两个测试。

这就是说,虽然我已经看到强有力的论据进行测试对两个非检测和检测的代码,我更喜欢只运行测试后,对检测码-不只是因为专家/Hudson问题,但是因为当你已经有了测试需要45分钟,它似乎相当坦率地说愚蠢的运行两次产生同样的结果。

罗伯特,

我有这个问题以及发现,哈德森不会双报告,如果你设置的项目作为一个自由项目而不是一个Maven2项目。你会失去一些美好的事物的具有maven2项目,但对我们来说,这是一个交易,我们不得不做。

杰夫

我们使用的自由风格的项目和不具有这个问题,这样如所指出的,这可能是你的问题。

提供的合并的特征,我们创造了我们自己的神器储存库(我们没有使用专家).在每个建立,我们复制cobertura.ser文件的一个网络共享,重新命名它在这一进程。我们有一个综合视角的工作,复制所有cobertura文件和源码文件(另外一个建立工件拷贝到网络共享)进入的地方建立目录和产生的Cobertura报告。

缺乏标准的工件的储存库内哈德森是一位令人沮丧的,但是有意义给予的作者通常使用的家用于这些需要。我们的生成过程的运行,在多个服务器所以我们不能只用相对路径进入其他工作目录。

注意,我们做同样的事情为其它指标:测试结果,JavaNCSS等。并加入了使用正确的工具或一些自定义的代码。

我们使用同一个储存库的传统建立文物:Dll,罐,安装脚本。

见SD Java测试的复盖率极低的开销工具,具有一个很好的界面。我不确定我理解你的"运行两次"问题,但是如果你跑了(相同的确定性)测试两次与SD工具,你会得到相同的测试复盖率的数据,例如,其幂等的。如果你的测试都具有不确定性,你会得到两个不同的测试运行,但这些工具可很容易地融合的结果的几个跑到一个单一整体的概要。

他们还处理极大的应用程序,及时处理多个应用程序的很好(小时的碎片可以使答案略有不准确,在理论,但实际上这根本不是一个问题)。

你有没有考虑 讨论大多数集中的三叶草?

在家-clover2件有一个新目标: clover2:设置 这将简单的仪器测试没有分叉的生命周期,或运行测试的两倍。

你将定义的目标运行在哈德森是这样的:

mvn clover2:setup verify clover2:aggregate clover2:clover

在家-clover2件是完全免费尝试30天。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top