Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial/回转窑和#x2B连续集成的建议;MSBuild+;MSTest_Msbuild_Mercurial_Build_Continuous Integration_Mstest - Fatal编程技术网

Mercurial/回转窑和#x2B连续集成的建议;MSBuild+;MSTest

Mercurial/回转窑和#x2B连续集成的建议;MSBuild+;MSTest,msbuild,mercurial,build,continuous-integration,mstest,Msbuild,Mercurial,Build,Continuous Integration,Mstest,我们的源代码存储在kill/Mercurial存储库中;我们使用MSBuild来构建我们的产品,并且我们有使用MSTest(VisualStudio单元测试)的单元测试 存在哪些解决方案来实现持续集成机器(即构建机器) 这方面的要求是: 必要时应停止构建(即,我们关心的存储库中的代码已更改) 在实际构建之前,必须从构建源代码的存储库中获取源代码的最新版本 构建必须构建整个产品 构建必须构建所有单元测试 构建必须执行所有单元测试 构建完成后,必须发送成功/失败摘要;这必须包括关于构建本身的信息,

我们的源代码存储在kill/Mercurial存储库中;我们使用MSBuild来构建我们的产品,并且我们有使用MSTest(VisualStudio单元测试)的单元测试

存在哪些解决方案来实现持续集成机器(即构建机器)

这方面的要求是:

  • 必要时应停止构建(即,我们关心的存储库中的代码已更改)
  • 在实际构建之前,必须从构建源代码的存储库中获取源代码的最新版本
  • 构建必须构建整个产品
  • 构建必须构建所有单元测试
  • 构建必须执行所有单元测试
  • 构建完成后,必须发送成功/失败摘要;这必须包括关于构建本身的信息,还包括关于哪些单元测试失败以及哪些单元测试成功的信息
  • 摘要必须包含此生成中尚未包含在上一个成功(!)生成中的更改集
  • 系统必须是可配置的,以便可以从多个分支(/存储库)构建
理想情况下,该系统将运行在单个机箱上(我们的产品没有那么大),而无需任何服务器组件

目前有哪些解决方案?他们的优点/缺点是什么?从上面的列表中,可以做什么,不能做什么

感谢

我们的产品完成了您在设计中列出的所有功能,并且有一个免费的、有点有限的版本(例如,您只能有有限数量的问题跟踪提供商与之集成,免费版本中不包括数据库更改脚本打包工具等),供5个或更少的用户使用。

TeamCity,from,ReSharp的制造商将完成所有这些。您必须针对“构建您的产品”的具体含义对其进行配置,但您可以使用它配置您指定的所有内容

软件可以提醒您构建失败,甚至只提醒负责签入破坏构建的代码的人员。它甚至提供了方便的网页,您可以查看这些网页,只查看您自己的更改,哪些构建成功完成,哪些构建挂起,哪些当前正在执行

因为它是一个分布式产品,所以您可以使它与您的组织和产品一起增长。如果在某个时刻,您发现等待构建完成的时间太长,因为许多构建正在排队,那么您可以添加更多的构建代理。构建代理基本上是安装在其他机器上的独立客户端程序,它们执行实际的构建配置

它有两种版本,专业版和企业版。专业版是免费的,最多可以包含20个构建配置、20个用户和3个构建代理。企业版有无限的用户和构建配置,您还可以使用基于LDAP的安全性(想想域验证用户)。企业版还有一些其他好处。如果需要更多的生成代理,还可以购买更多生成代理的许可证

现在,如果“没有服务器组件”意味着您不希望它像web服务器一样工作,那么您将很难找到对您的提交做出反应的内容

但是,如果您的意思是不想安装服务器操作系统,那么TeamCity也可以在工作站版本的Windows上工作。这并不是说你不应该考虑为它设置一个合适的服务器,但是如果你需要的话,它将在工作站上运行。

我总是喜欢它(并且已经贡献了一些代码)。在任何操作系统上安装和运行都相当容易,并且可以完成您所说的简单任务,如果您需要,还可以非常灵活

您可能会发现缺少的是其他更商业化的CI服务器(尤其是Enterprise-y框架)附带的包括日志刮取器和/或报告生成器的电池


它的扩展性也很好,Mozilla和Chromium都使用它。

您所描述的是CI工具的基础,所以每个CI工具都应该是正常的。
我使用的是巡航控制.NET,但它有Mercurial的漏洞,乍一看不是很简单。不过,我对此感到高兴。我脑海中出现的其他工具有哈德逊团队建设(来自TFS)团队城市

我没有尝试过其他工具,但您可以在这里看到优点/缺点:

  • 哈德逊vs.CC.net,以及
编辑:我忘了提到Hudson和Cruise Control.net是开源项目,您可以轻松地为安装编写插件和补丁


EDIT²:即将发布的1.6版ccnet(本周对主干进行了更改)中的Mercurial Bug似乎已经修复。

我放弃了TeamCity的CruiseControl,我的整个团队都对这一更改感到非常满意。我们在项目中使用MSBuild脚本,在测试中使用NUnit脚本。我们主要开发C++和C语言应用程序。