将test与代码检查工具插件分成不同的job来处理, test job用来对每次修改进行测试, 代码检查job则在每次发布前手工启动
在我们的持续集成环境中, hudson 1.341 + jboss 4.2 这个版本组合比较稳定, hudson 版本太高会出现 dom4j相关的异常, 搞了好久没解决:(
比较常用的插件是findbugs, cobertura组合, 其他没用过, 前者用来检查代码中的一些低级错误, 后者用来统计代码覆盖率, 覆盖率工具还有clover, emma, 前者收费商用, 生成的report更炫, 更强(里面继承了代码复杂度, 代码风险评估等静态分析功能), 后者emma的report相对要简易
在使用cobertura之后, 如果是maven, goals and options不需要写test, 否则会出现test phase 跑两遍, 在跑cobertura之前默认会跑test. 比如这样设置:-U clean cobertura:cobertura
在hudson 1.341这个版本, cobertura maven plugin版本采用2.2就好, 太高(比如2.3)在生成report的时候会有一堆的语法检查warning, 虽然无大碍.
在使用cobertura的时候有一个限制, 就是如果test跟要测试的project是分离的, 换句话说如果test是一个单独的project, 那么这个貌似是没法对被测试的project统计代码覆盖率, 而clover则没有这个限制, 要钱的就是不一样啊!
关于cobertura的maven plugin配置, 本人认为hudson上的配置太繁琐, 其实可以简单的配置为:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<formats>
<format>xml</format>
</formats>
</configuration>
</plugin>
对clover的maven命令也有一些技巧, 一般要这样配置:
-U clean clover2:setup test clover2:aggregate clover2:clover
如果将test放在clover2:setup前面, 则clover的一些设置将会被test被清掉, 导致有些report可能没法输出
所以最终我们的选择hudson 1.341 + jboss 4.2 +clover plugin + findbugs plugin
分享到:
相关推荐
在本文中,我们将深入探讨Hudson的基础配置及其在持续集成中的应用。 首先,了解持续集成(CI)的重要性是至关重要的。持续集成是一种软件开发实践,其中开发人员频繁地将他们的更改合并到主分支,通常每天至少一次...
5.2 数据持久化:理解如何存储和读取插件的配置数据,如使用Hudson的持久化框架。 5.3 测试插件:编写单元测试和集成测试,确保插件的功能正确性和稳定性。 六、最佳实践与社区资源 6.1 版本控制:推荐使用Git...
本文将围绕Hudson的基本概念、特点及其配置方法展开讨论。 #### 二、Hudson概述 Hudson是一个开源工具,主要用于持续集成,旨在帮助开发团队更高效地进行自动化构建和测试。通过持续集成实践,Hudson能够检测并...
1. **易于配置**:Hudson以其简单直观的Web界面著称,用户可以通过图形化界面轻松完成各种配置操作。无论是安装插件、设置构建触发器还是管理构建结果,Hudson都提供了极为友好的用户体验。 - **安装简单**:只需...
3. **使用Hudson进行持续集成**: - Hudson是一种持续集成工具。 - 可以自动构建和测试项目,提高软件质量。 4. **使用Maven构建Web应用**: - Maven支持构建各种类型的Web应用。 - 可以轻松管理Web项目的依赖...
对于已经有一定Maven使用经验的开发者,书中也提供了丰富的高级知识,包括使用Nexus建立私有仓库、使用Hudson进行持续集成等,这些都是在企业项目中常见的应用实践。此外,书中还包含了如何编写Maven插件和Archetype...
在“flex测试总结”这篇博客中,作者JavierHui分享了关于Flex应用程序测试的一些关键知识点和经验。Flex是Adobe公司推出的一种用于构建富互联网应用(RIA)的开发框架,基于ActionScript和Flash Player或Adobe AIR...
- **版本控制:** 使用版本控制系统来管理Maven的配置文件。 - **统一设置:** 在团队中采用统一的Maven配置。 - **持续集成:** 配置CI工具如Jenkins来自动运行Maven构建。 #### 三、Maven核心概念 - **坐标和...
m2eclipse还与持续集成工具如Jenkins、Hudson等紧密集成,可以通过插件直接在Eclipse中触发构建任务,监控构建状态,方便开发团队的协作和质量管理。 7. **与其他Eclipse插件的协同工作** 除了基本的Maven功能,...