我正在使用Hudson进行一个庞大的Java项目。 2个团队参与了该项目,使打破构建非常合理,并且必须尽可能快地触发失败的单元测试或构建中断的报告!为了实现这一目标,我们正在使用一个经常触发的每日连续构建,并且仅仅针对已更改的模块及其依赖项运行“干净测试”目标。
这很好,但还不够,构建仍然太慢,我想在构建过程结束时停用一些运行集成测试的模块,这与“每小时”工作无关,特别是对于在UI部分工作的团队。
有没有办法配置Hudson来禁用某些模块而不破坏pom文件?
答案 0 :(得分:2)
“这很好,但还不够,构建仍然太慢,我想停用一些在构建过程结束时运行集成测试的模块”
我会为这些团队买一本好书。集成测试不应该在测试目标中。集成测试属于集成测试生命周期阶段。
如果这些团队不愿意遵守标准,那么现在是时候匆匆忙忙了。对不起直接语言,但你只是因为不遵守标准而没有重大理由而要求麻烦。我不得不偶尔这样做,但它通常以水槽或游泳结束。主要是针对开发人员,有时候是我。 :(
答案 1 :(得分:1)
据我所知Hudson/Jenkins
只执行你的构建文件,我认为不是CI的处理项目定制的范围。
所以对我来说,破解POM文件似乎是唯一的选择。
答案 2 :(得分:0)
另一种加快速度的方法是只构建更改的模块(因为上次仍然在本地或企业存储库中的模块)。在Maven项目的高级构建配置中,有选项:“增量构建 - 仅构建已更改的模块”,这样做。排除那些因为有集成测试而发生变化的模块似乎非常危险。实际上,CI的重点是在变更之后尽快建立。
你可以做的,不应该涉及太多的改变,但是使用诸如构建配置文件之类的技术将测试分成慢速和快速。例如。少于1秒是快的。这样就很容易将它们分开,并且也会对那些慢速测试的Devs高亮一点。然后,您可以创建一系列构建,以便快速构建首先运行,从而在尽可能最快的时间内为开发人员提供反馈。如果构建成功,它可以触发较慢的测试,仍然在最短的合理时间内提供反馈。这些测试仍然可以增加价值,并应尽可能频繁地运行。
如果您决定将工作链接起来,请查看为某种情况设置的build pipeline plugin。