将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 使用手册核心知识点 #### 1. Hudson 的概述与背景 ...无论是对于刚接触持续集成的新手还是寻求优化现有工作流程的经验丰富开发者来说,Hudson 都是一款值得深入了解和使用的强大工具。
本文将围绕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功能,...