Mat*_*att 56 python continuous-integration extreme-programming
我开始研究一个带有Python代码库的业余爱好项目,我想设置某种形式的持续集成(即每次签入时运行一组测试用例并向负责人发送唠叨的电子邮件与测试失败的人类似于CruiseControl或TeamCity.
我意识到我可以在大多数VCS中使用钩子来做到这一点,但这要求测试在与版本控制服务器相同的机器上运行,这不像我想的那样优雅.有没有人对适合Python代码库的小型,用户友好的开源持续集成系统有任何建议?
Joe*_*haw 28
一种可能性是哈德森.它是用Java编写的,但它与Python项目集成:
但是,我自己从未尝试过.
(更新,2011年9月:在商标纠纷之后,Hudson已更名为Jenkins.)
nlu*_*oni 28
我们在运行Buildbot - Trac.我没有太多使用它,因为我的代码库还不是发布周期的一部分.但我们在不同的环境(OSX/Linux/Win)上运行测试并发送电子邮件 - 它是用Python编写的.
Daa*_*aan 19
第二个Buildbot - Trac集成.您可以在Buildbot网站上找到有关集成的更多信息.在我以前的工作中,我们编写并使用了他们提到的插件(tracbb).该插件所做的是重写所有Buildbot网址,以便您可以在Trac中使用Buildbot.(http://example.com/tracbb).
关于Buildbot的好处是配置是用Python编写的.您可以将自己的Python代码直接集成到配置中.编写自己的BuildSteps来执行特定任务也非常容易.
我们使用BuildSteps从SVN获取源,提取依赖关系,将测试结果发布到WebDAV等.
我写了一个X10接口,所以我们可以发送带有构建结果的信号.当构建失败时,我们打开了一个红色的熔岩灯.当构建成功时,绿色熔岩灯打开.美好时光 :-)
Nic*_*ley 17
我们使用Buildbot和Hudson进行Jython开发.两者都很有用,但有不同的优点和缺点.
Buildbot的配置是纯Python,一旦掌握了它就很简单(查看epydoc生成的API文档以获取最新信息).Buildbot可以更轻松地定义非测试任务并分发测试人员.但是,它实际上没有单独测试的概念,只有文本,HTML和摘要输出,所以如果你想要多级可浏览测试输出等等,你必须自己构建它,或者只使用Hudson.
Hudson非常支持从总体结果深入到测试套件和单个测试中; 它也非常适合比较构建之间的测试输出,但分布式(主/从)的东西比较复杂,因为你也需要奴隶上的Java环境; 此外,哈德森对主人和奴隶之间的片状网络链接的容忍度较低.
因此,为了获得这两种工具的好处,我们运行一个Hudson实例,它捕获常见的测试失败,然后我们使用Buildbot进行多平台回归.
这是我们的实例: