UML软件工程组织

使用Team Foundation Server执行每晚构建
作者 Mark Stevenson Sr. Consultant, Microsoft

概述:这篇文章描述了一个命令行工具的创建,这个工具从存储在Microsoft Visual Studio Team Foundation Server的代码中生成每晚构建。

介绍
执行一个每晚构建是在每天的基础上在一个可执行的窗体中建立一个应用程序的过程。公共的每晚构建是一个强大的指示器,团队使用这个指示器积极的显示进度。它也是一种使产品和进度在项目组中可见和可用的一种方式。每晚构建是开发过程的关键。像以前提到的,每晚构建的一个很大的优势就是对于每个需要评估项目进度的人来说,它是可以使用的。它是一个进度的指示器,因为它确定了产品作为一个整体是向前发展的,而不是作为每一个单独的部分。在团队中,单独的每个人是不可能成功的,但他们作为一个开发团队才能获得成功。通过整体的查看产品,不为解释留下余地的方式,构建提供了团队和产品进度的权威性状态。

每日构建的概念有好多益处,但是这些的基本就是在开发过程中它给予了产品生命周期。一个益处就是将单独的产品块合在一起的操作。其他的包括:

  • 将块转换成产品,它就会暴露出哪些部分不能正常的工作。
  • 不能适合产品的块将突出集成问题。
  • 构建他们的块到产品中将强迫团队成员同步他们的成就。
  • 第二个益处就是将产品块合在一起。
  • 团队可以使用这个可测试的实体决定产品的状态和质量。
  • 当他们看到产品有一个生命周期时,团队和客户的士气就会提高。
  • 第三个好处就是团队将这些块合在一起的频率是多少。
  • 很容易发现每晚构建中的缺点的来源,因为它跟以前的努力和成就有关系。
  • 频繁的同步意味着团队成员不会轻易的放弃同步。

尝试一个每晚测试并不够。如果构建被打破,团队必须停下来而去更改它。不去修改意味着团队将传播这些过失到将来的构建中,基于这些过失开发出当前代码。所以,整个团队必须认真对待构建的健康程度。

更重要的,无论合事都要保持构建。团队不应该以后在开发周期内让压力劝止做每晚构建。团队所处的压力越大,它就更需要每晚构建提供的益处。

使用Team Foundation Server的每晚构建
使用Microsoft Team Foundation Server的开发团队能够在Team Server中获得构建功能的益处来在一个规划或者自动的情况下执行这些构建。在发布的Team Server Beta 2中,微软包含了一个BuildController Web service,它能被调用来从一个计划的程序中开始一个构建。

每晚构建包括了一些有序的步骤,当成功后结果将出现在每日交付使用的集合中。这些步骤包括从源控制提供者那里获得最新的软件版本,编译代码,标注来源,运行基本测试,然后公布二进制和构建过程的结果。每晚构建过程允许所有的团队成员在代码的当前质量水平上保持齐头并进,给予开发人员在正常的工作状态下维护他们的代码。这将产生代码能被集成到以前的开发周期中然后生成更好质量的代码这样的结果。

目标

每晚构建过程的设计目标就是:

  • 对于构建产品最新版本,提供了一个自动的机制。
  • 提供了一种来自任何一天,产品任何版本的构建存档的能力。
  • 使开发团队有最小的影响。

步骤

每晚构建过程被分为五个主要的阶段:

  • 从源控制中恢复。
  • 构建项目(编译)。
  • 单元测试的执行。
  • 共享构建结果。
  • 报告构建结果和方式。

幸运的,所有这五个步骤可以通过构建脚本配置在Team Foundation Server中轻松的被自动化。通过在Team Server中完成”New Build Type”向导创建完一个新的构建类型后,它就像调用构建控制器Web service执行这个构建一样简单。下面是一个示例程序,它能够在计划任务中被配置执行每晚构建。

为了使用这个程序,在Microsoft Visual Studio.NET 2005中打开NightlyBuild.sln文件,然后编译项目。这个程序需要运行的机器上安装.NET Framework 2.0。要计划一个构建,复制程序和配置文件到它应该被执行的位置上,然后在“控制面板->计划任务->添加计划任务”中添加一个计划任务。,当添加计划任务时,你么一指定构建运行的时间(一周的哪一天等等)。指定一个拥有构建权限执行程序和执行计划的帐号,然后保存任务。在Windows帮助中查看“计划任务概述”来得到更多在Windows中创建计划任务的信息。

配置

NightlyBuild.exe程序可能使用一个配置文件,命令行参数或者这两个来配置一个每晚构建把。默认的,程序将使用NightlyBuild.exe.config文件来存储下面的设置。

表1。配置设置

应用程序配置文件

下面是文件中程序设置部分的示例。这些设置将在NightlyBuild.exe每次执行时作为默认的设置使用。

命令行参数

如果NightlyBuild.exe.config中的默认设置没有被指定,或者你希望重载设置,配置设置可以在命令行中被指定。命令行参数可以在任何时候通过运行"NightlyBuild.exe /?"显示出来。

 

 

版权所有:UML软件工程组织