根据实际经验,我想问你哪个自动构建环境更好.我打算做一些.Net和一些Java开发,所以我想有一个支持这两个平台的工具.
我一直在阅读并了解CruiseControl.NET,用于stackoverflow开发,以及TeamCity,它支持在不同操作系统平台上构建代理并基于不同的编程语言.所以,如果你对这两者都有一些实际经验,你更喜欢哪一个?为什么?
目前,我最感兴趣的是该工具的易用性和管理,更不用说CC是开源的,而且当你有很多项目要运行时,TC在某些时候需要获得许可(因为,我需要它用于少量项目).
此外,如果有其他工具满足上述要求并且您认为值得推荐 - 请随意将其纳入讨论.
cruisecontrol.net build-automation teamcity continuous-integration cruisecontrol
我认为标题总结了它.我只是想知道为什么一个或另一个对于Svn的Java项目的连续集成构建更好.
在使用Hudson与之前的项目持续集成之后,我想为我正在研究的iPhone项目设置一个持续集成服务器.在做了一些研究之后,看起来没有专门为Xcode设计的CI引擎,但是有一个人使用Cruise Control和xcodebuild CLI工具取得了成功.这里有人试过吗?有没有适合Xcode项目的CI引擎?
我可能会试试Cruise Control.我会用我的发现发表一个答案.
iphone xcode continuous-integration cruisecontrol xcodebuild
每次将更新发送到我们的远程存储库时,我正在执行一个程序来提醒CruiseControl.我正在使用Git post-update钩子.
如果我能找到已经提交的分支,那将是很好的,所以我可以使用它来通知CruiseControl要构建哪个分支.有没有办法在更新后的钩子中访问分支名称?
我的目的是在CruiseControl和Hudson之间选择作为Java桌面应用程序的持续集成工具.我看过很多比较Hudson和CruiseControl的阅读.在功能和易用性方面,Hudson似乎是最好的.
但就坚固性,可靠性和重型配置而言,从长远来看,这仍然是正确的吗?
我正在尝试使用phpunit运行SeleniumTestCase,但我无法使用phpunit.bat脚本运行它.
我的目标是在CruiseControl和phpUnderControl中使用带有Selenium RC的phpunit.这是测试的样子:
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
class WebTest extends PHPUnit_Extensions_SeleniumTestCase
{
protected function setUp()
{
$this->setBrowser('*firefox');
$this->setBrowserUrl('http://www.example.com/');
}
public function testTitle()
{
$this->open('http://www.example.com/');
$this->assertTitleEquals('Example Web Page');
}
}
Run Code Online (Sandbox Code Playgroud)
我还在include_path中添加了PEAR,并在Selenium扩展中安装了PHPUnit.我用pear安装程序安装了这些,所以我猜这不是问题所在.
任何帮助将非常感谢.
谢谢,雷米
我只是和另一位开发人员(比我更高级)谈话,并试图说服他们我们应该通过Cruise Control实现持续集成.他告诉我,这不起作用,因为他提交的代码不会一直编译到存储库,以便进行备份.而通知我们失败的自动化构建只是噪音.
垃圾回收回购对我来说听起来很糟糕.但我不知所措,不知道该说些什么.有什么选择?在不添加大量无意义修订的情况下,在另一台计算机上备份代码的最佳做法是什么?
顺便说一句,我们的版本控制系统是SVN,可能不会很快改变.
我在phpunit中运行一系列测试,这些测试存在于单独的测试套件中,其列表由phpunit配置文件控制.当测试单独运行时(即不是通过配置文件运行,因此一次运行测试套件)它们通过但是,当一起运行时,我会失败.
仔细研究一下,问题是每个测试套件都在框架中加载(通过require_once),并且该框架根据require_once时的设置进行一些内部配置.看来,在运行phpunit配置文件中单独列出的测试套件之间,各种各样的事情仍然存在.在这种特殊情况下,框架已被视为已加载.
那么 - 有没有办法让phpunit独立执行一系列测试套件,即等同于在测试套件上一次运行一个phpunit? (phpunit正在由autotest机器上的cruisecontrol触发,并且在提交之前由开发人员在本地触发.)我尝试了诸如'--process-isolation'和'--no-globals-backup'之类的选项但没有成功.
一个说明问题的简单例子是'constant.php'文件:
<?php
if (defined('XYZZY')) define('TEST', 1);
else define('TEST', 2);
Run Code Online (Sandbox Code Playgroud)
testuite'TestOne.php':
<?php
define('XYZZY', "");
require_once('constant.php');
class TestOne extends PHPUnit_Framework_TestCase
{
public function testOne()
{
$this->assertEquals(TEST, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
一个类似的测试套件'TestTwo.php':
<?php
require_once('constant.php');
class TestTwo extends PHPUnit_Framework_TestCase
{
public function testTwo()
{
$this->assertEquals(TEST, 2);
}
}
Run Code Online (Sandbox Code Playgroud)
和一个phpunit配置文件:
<phpunit>
<testsuites>
<testsuite name="First">
<file>./TestOne.php</file>
</testsuite>
<testsuite name="Second">
<file>./TestTwo.php</file>
</testsuite>
</testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud) 有没有人设置Cruise Control来构建OS X Cocoa/Objective-C项目?
如果是这样,是否有一个首选的CruiseControl(CruiseControl.rb或只是普通的CruiseControl),这将更容易做到这一点.
我目前有一个Ruby rake文件,其中包含执行构建和运行测试的步骤,并希望在执行签入后自动执行此过程.
此外,CruiseControl是否支持git?我在网站上找不到任何东西.
我们目前使用手动设置和配置脚本以及手动连续集成脚本来构建和部署我们的应用程序.我正在考虑使用专为这些目的而设计的第三方系统来正式化这一点.
我之前看过Phing,我知道它基本上就像Ant.但是,我的Ant体验有点受限,所以对我没有多大帮助.(我所做的大部分Java工作都是作为jar文件部署的).
之前我已经研究过Cruise Control,我知道phpUnderControl是CC的一个插件.但是,Phing说它也适用于CC.所以我不清楚这里的重叠.我是否需要使用Phing和phpUnderControl来使用CruiseControl,还是它们是相互排斥的?
我需要的是能够:
现在,我们以这种或那种形式提供所有这些.但是,将它全部自动化并在一个过程中捆绑在一起会很不错.