Continuous integration 设置集成测试服务器的最佳方法是什么?
设置集成服务器时,我对使用多个任务来完成构建的最佳方法表示怀疑。在一个大任务中设置所有任务或创建小的依赖任务的最佳方法是什么?我使用TeamCity和nant构建脚本。TeamCity可以轻松设置CI服务器部件,而nant构建脚本可以轻松完成许多与报表生成相关的任务 下面是我写的一篇关于将CI与CruiseControl.NET结合使用的文章,它的注释中有一个nant构建脚本,可以在项目中重复使用:Continuous integration 设置集成测试服务器的最佳方法是什么?,continuous-integration,integration-testing,Continuous Integration,Integration Testing,设置集成服务器时,我对使用多个任务来完成构建的最佳方法表示怀疑。在一个大任务中设置所有任务或创建小的依赖任务的最佳方法是什么?我使用TeamCity和nant构建脚本。TeamCity可以轻松设置CI服务器部件,而nant构建脚本可以轻松完成许多与报表生成相关的任务 下面是我写的一篇关于将CI与CruiseControl.NET结合使用的文章,它的注释中有一个nant构建脚本,可以在项目中重复使用: 我肯定会把工作分解。很可能您会在构建中进行更改,如果您有较小的任务,而不是搜索一个单一的构建,那
我肯定会把工作分解。很可能您会在构建中进行更改,如果您有较小的任务,而不是搜索一个单一的构建,那么跟踪问题会更容易
无论如何,你应该能够从较小的部分创建一个大作业。你肯定想分解任务。下面是CruiseControl.NET配置的一个很好的示例,每个步骤都有不同的目标(任务)。它还使用一个common.build文件,该文件可以在项目之间共享,而无需太多定制 G'day 在您谈论集成测试时,我的一个重要(显而易见)技巧是使测试服务器的构建和配置尽可能接近部署环境
</thebloodyobvious> (-:
(-)
干杯,
Rob我喜欢的方法是以下设置(实际上假设您在.NET项目中):
- CruiseControl.NET
- 每个单独步骤的NANT任务。NANT.Contrib用于替代CC模板
- NUnit运行单元测试
- NCover执行代码覆盖
- FXCop用于静态分析报告
- 源代码管理的Subversion
- CCTray或所有开发框上的类似工具,以获取构建和故障等通知
- CI构建由签入触发,并执行干净的SVN获取、构建和运行轻量级测试。理想情况下,您可以将这一过程控制在几分钟或更短的时间内
- 一个更全面的构建,可以是每小时一次(如果更改),它与CI的功能相同,但运行更全面、更耗时的测试
- 一个通宵构建,它可以完成所有工作,还可以运行代码覆盖率和程序集的静态分析,并运行任何部署步骤来构建每日MSI包等
将任务分解为离散的目标/操作,然后使用更高级别的脚本将它们适当地结合在一起 这使您的构建过程更容易为其他人理解(您正在边做边记录,以便团队中的任何人都能了解它,对吗?),并增加了重用的可能性。您可能不会重用高级脚本(虽然如果您有类似的项目,这可能是可能的),但您肯定可以重用(即使是复制/粘贴)离散操作也相当容易 以从存储库获取最新源代码为例。您需要使用一些日志语句对检索代码的任务/操作进行分组,并引用适当的帐户信息。这是一种很容易从一个项目重用到下一个项目的方法 对于我的团队环境,我们使用NAnt,因为它在开发机器(我们在其中编写/调试脚本)和CI服务器(因为我们只是在干净的环境中执行相同的脚本)之间提供了一个公共脚本环境.我们使用Jenkins来管理构建,但在其核心,每个项目只是调用相同的NAnt脚本,然后我们处理结果(即,归档构建输出,标记失败测试等)