1

我将 Hudson 用于一个巨大的 Java 项目。该项目涉及 2 个团队,这使得中断构建非常明智,并且必须尽快触发单元测试失败或构建中断的报告!为了实现这一点,我们每天使用一个经常触发的连续构建,并且仅在更改的模块及其依赖项上运行“干净测试”目标。

这很好但还不够,构建仍然太慢,我想停用一些在构建过程结束时正在运行集成测试并且与“每小时”工作无关的模块,特别是对于团队工作在 UI 部分。

有没有办法配置 Hudson 以禁用某些模块而不破解 pom 文件?

4

3 回答 3

2

“这很好但还不够,构建仍然太慢,我想在构建过程结束时停用一些正在运行集成测试的模块”

我会给这些团队买一本好的专家书。集成测试不应该在测试目标中。集成测试属于集成测试生命周期阶段。

如果这些团队不愿意遵守标准,那么是时候大打出手了。对不起,直接的语言,但你只是因为不遵守标准而自找麻烦,没有重要的理由。我也必须偶尔这样做,但它通常以沉没或游泳结束。主要是为开发人员,有时是我。:(

于 2011-02-02T21:44:32.713 回答
1

据我所知Hudson/Jenkins,只执行你的构建文件,我认为 CI 的范围不在处理项目定制。

所以对我来说,破解 POM 文件似乎是唯一的选择。

于 2011-02-01T17:47:07.687 回答
0

加快速度的另一种方法是只构建发生变化的模块(因为上次没有发生变化的模块仍然在您的本地或企业存储库中)。在 Maven 项目的高级构建配置中,有以下选项: “增量构建 - 仅构建更改的模块”,它执行此操作。仅仅因为它们具有集成测试而排除已更改的模块似乎非常危险。实际上,CI 的全部意义在于在更改后尽快构建。

您可以做的(不应该涉及太多更改)是使用诸如构建配置文件之类的技术将您的测试分为慢速和快速。例如,少于 1 秒是快的。像这样拆分它们很容易,并且也会向开发人员强调,这是缓慢的测试。然后,您可以创建一个构建链,以便快速构建首先运行,并在尽可能快的时间内为开发人员提供反馈。如果构建成功,它可以触发较慢的测试,仍然在最短的合理时间内给出反馈。这些测试仍然可以增加价值,应该尽可能频繁地运行。

如果您确实决定链接您的工作,请查看为某种场景设置的构建管道插件。

于 2011-03-14T03:18:55.667 回答