2008-10-20 147 views
2

我一直在探索在一些Nant构建脚本中运行集成测试的不同策略。通常情况下,许多不同的脚本被链接在一个单独的构建中,这些构建具有不同的目标:staging(构建一个staging版本,如build),build(只是构建东西),integration(构建东西并运行集成测试)。这很合理,构建目标需要大约三分之一的时间作为集成目标运行,并且不会很痛苦,所以我不觉得自己不愿意频繁运行它。NAnt与数据库集成测试,并最终持续集成

另一方面,集成目标需要足够长的时间,以至于我不想经常这么做 - 理想情况是在我准备好部署之前。这似乎是一个合理的策略? IOW,我做对了吗?

该计划最终将该项目转移到持续集成。我对整个持续集成事业不熟悉,但我认为我理解“打破构建”的概念,所以我想知道为了充分利用它而采取哪些良好实践?

任何有关此主题阅读的良好来源也将不胜感激。谢谢!

回答

3

是的,你在正确的轨道上。你现在需要做的是把你的目标对象连接到一个自动化的过程。我建议使用Team City或Cruise Control作为您的CI工具。完成自动服务器设置后,您可以在每次检入时运行构建和单元测试(持续集成)。您的集成测试可以在晚上或周末运行,因为它们通常需要更长的时间才能运行。如果您的集成测试成功,那么您可以拥有一个将部署到某个QA或其他服务器的工作。

2

听起来像你99%的方式。我的建议是只是潜入并开始做。通过实际采取这种做法,你会学到更多东西,而不是想着你是否做得对。

我的公司目前正在使用CruiseControl,我个人认为它很棒。

+0

谢谢,我真的非常期待。可悲的是,我不是最终要说的人。 – mmacaulay 2008-10-20 21:02:32

1

看到这个相关话题What is a good CI build process?

你是在正确的轨道上。如果你使用的是一个体面的CI工具,你应该能够设置每个设置作为一个单独的项目,触发链中的下一个步骤...即成功触发测试触发部署,触发集成等测试

这样,你最快的“休息”就可以停下来。我们使用CruiseControl构建,单元测试,配置和部署,运行集成测试和代码覆盖,运行验收测试以及发布包。这与8个左右的Web服务系统和十几个数据库,所有这些都具有跨多个不同配置环境的配置和部署依赖关系(任何从单个盒子到每个组件的重复盒子的任意)