【发布时间】:2010-09-23 21:56:49
【问题描述】:
我在工作中遇到了一种情况,有人建议将我们的单元测试添加到 Cruise Control 持续构建过程中。单元测试将作为另一个项目添加到 CC 中,这样我们就会有一个 "Normal Build" 项目和一个 "Build and Test" 项目。我们目前使用“正常构建”流程来 a) 确保没有开发人员破坏构建,并且 b) 确保在将发布即将推送到 QA/Production 时构建没有破坏。
通过将单元测试添加到流程中,我们可以 a) 在单元测试被破坏时收到通知,以便我们检查以确保它不是我们编写的,并且 b) 确保在 a) 之前没有单元失败build 被发布到 QA/Production。 所以我了解其中的好处,但我仍然担心这将如何影响我们的开发过程。这是我看到的场景......
当前进程...
- 构建服务器构建 Cruise Control “正常构建”项目
- 指示灯变红(在巡航控制中) 当构建失败时
- 被指责的开发者得到了一个巨魔
新流程...
- 为“构建和测试”添加了另一个 CC 项目(现在是两个项目)
- “正常构建”项目的指示灯为绿色
- “构建和测试”项目的指示灯变为红色
- 被指责的开发商得到...
场景一:被指责的开发者一无所获。我们正在做 TDD,如果单元测试失败也没关系。 “构建和测试”项目是红色的,我们不打算将构建推送给 QA。
场景二:被指责的开发者被 TROLL,“构建和测试”项目永远不应该是红色的。
无论如何,我很想知道对这个过程的想法是什么?请保持简短。您的团队是否在构建中包含单元测试。如果是这样,您是否遵循 TDD?您是否总是努力通过测试来保持您的构建全部通过?
谢谢!
【问题讨论】:
-
拥有“Build [only]”有什么意义?如果测试失败,你的构建就毫无价值;没有必要假装什么东西是绿色的。
-
好吧,在此过程之前我们所做的是始终在将构建推送到 QA 之前运行测试。但正如你可以看到的那样,这显然不适合我们。
标签: build-process automated-tests tdd