引用:
原帖由 马路MM 于 2010-1-22 15:40 发表 
新手一个,试用了maven build,各种report 插件,还有Distributed builds ,发现非常好用,也很实用。现在我有这样一个问题,不知道hudson是否支持,有高手请赐教,谢谢!
某项目包含多个模块(例如:10 个,其中还有依赖关系),每个模块都需要做build,report, 但是如果为每个模块建立一个job, 从站点上看起来数量太多,无法知道他们之间的关系,没有整体感,而且每个report都分别在自己的job内,不便于阅读。我想,能否以项目为单位,统一管理模块,所有结果也都集中在一起。
简单的做法就是:laofo说的,把这10个模块放到一个构建脚本里,然后用Hudson 调用这个构建脚本,此脚本包含了你要做的所有测试工作,最后生成report通过hudson发布即可,对应plugin不同,hudson会发布不同的结果,而且是在同一界面上。此时如果采用hudson自动提供的管道式集成模式,可以多次集成并行,保证尽快提供集成结果。但是如果项目很大的话,机器性能一定要跟上。
所谓正道并且麻烦点的做法:那就是采用分布式的集成模式啦。首先整理模块间的依赖关系,假如是这样的。
A
|
---------------
| |
B C
-------- ---------
| | | |
D E F G
| |
H I
|
J
模块间是完全的树形依赖关系,这时根据各个模块的依赖性进行归类。上例中:树形中每层假如说都可归为一类,广义一点可分为5个job
job1: A
job2: B C
job3: D E F G
job4: H
job5: J
其次:将持续集成做到尽量快,尽量频繁。哪层变化就对哪层进行集成,上层依赖有变化下层强制集成。如果测试是针对模块的,就好办了,哪个job变化就运行哪个测试。同时呢,测试建议用hudson分布式的技术来做,以减少构建时间。
最后:report发布。如果要借助于hudson,个人觉得可以这样做,每个job都去做整个项目test结果的发布,将你测试生成的report统一放在某个目录下:比如D:\TestResult\${测试名称}, 然后在hudson plugin里面配置发布结果去D:\TestResult\${测试名称}找到相应的即可。这样就完成了整个项目测试结果的统一发布,查看方式可以打开hudson界面,有个buildhistory,它是按时间排序的。点击最后一个即可。如果不借助于hudson,我觉得可以以mail的形式将测试结果发布出来。但是hudson有些plugin可以将测试趋势图做出来,个人比较喜欢。
说明:要做这个事情其实不难,关键是工具和脚本的合理结合。你不能去想Hudson可以满足你所有的需求,它只是一个工具,呵呵。而且对于多个report结果的发布,Hudson是如何做到的,我也没有太深的研究,没有实践过。嘿嘿,在这里只是提出愚见,希望对你有所帮助。