我开始研究一个带有Python代码库的业余爱好项目,我想设置某种形式的持续集成(即每次办理登机手续时运行一组测试用例并向负责人发送唠叨的电子邮件与测试失败的人类似于CruiseControlTeamCity

我意识到我可以在大多数VCS中使用钩子来做到这一点,但这要求测试在与版本控制服务器相同的机器上运行,这不像我想的那样优雅。 有没有人对适合Python代码库的小型,用户友好的开源持续集成系统有任何建议?

===============>>#1 票数:28

一种可能性是哈德森。 它是用Java编写的,但它与Python项目集成:

Hudson拥抱Python

但是,我自己从未尝试过。

更新 ,2011年9月:在商标纠纷之后,Hudson已更名为Jenkins 。)

===============>>#2 票数:28 已采纳

我们在运行Buildbot - Trac 我没有太多使用它,因为我的代码库还不是发布周期的一部分。 但是我们在不同的环境(OSX / Linux / Win)上运行测试并发送电子邮件 - 它是用Python编写的。

===============>>#3 票数:19

第二个Buildbot - Trac集成。 您可以在Buildbot网站上找到有关集成的更多信息。 在我以前的工作中,我们编写并使用了他们提到的插件(tracbb)。 该插件所做的是重写所有Buildbot网址,以便您可以在Trac中使用B​​uildbot。 http://example.com/tracbb )。

关于Buildbot的好处是配置是用Python编写的。 您可以将自己的Python代码直接集成到配置中。 编写自己的BuildSteps来执行特定任务也非常容易。

我们使用BuildSteps从SVN获取源,提取依赖关系,将测试结果发布到WebDAV等。

我写了一个X10接口,所以我们可以发送带有构建结果的信号。 当构建失败时,我们打开了一个红色的熔岩灯。 当构建成功时,绿色熔岩灯打开。 美好时光 :-)

===============>>#4 票数:17

我们使用Buildbot和Hudson进行Jython开发。 两者都很有用,但有不同的优点和缺点。

Buildbot的配置是纯Python,一旦掌握了它就很简单(查看epydoc生成的API文档以获取最新信息)。 Buildbot可以更轻松地定义非测试任务并分发测试人员。 但是,它实际上没有单独测试的概念,只有文本,HTML和摘要输出,所以如果你想要多级可浏览测试输出等等,你必须自己构建它,或者只使用Hudson。

Hudson非常支持从总体结果深入到测试套件和单个测试中; 它也非常适合比较构建之间的测试输出,但分布式(主/从)的东西比较复杂,因为你也需要奴隶上的Java环境; 此外,哈德森对主人和奴隶之间的片状网络链接的容忍度较低。

因此,为了获得这两种工具的好处,我们运行一个Hudson实例,它捕获常见的测试失败,然后我们使用Buildbot进行多平台回归。

这是我们的实例:

===============>>#5 票数:7

我们正在使用Bitten与trac集成。 它是基于python的。

===============>>#6 票数:6

TeamCity有一些Python 集成

但TeamCity是:

  • 不是开源的
  • 不小,但功能丰富
  • 对于中小型球队来说是免费的。

===============>>#7 票数:5

对于较小的代码库,我对Travis-CI有很好的经验。 主要优点是:

  • 设置在不到半个配置文件的屏幕中完成
  • 您可以自己安装或只使用免费的托管版本
  • github存储库的半自动设置
  • 网站上不需要帐户; 通过github登录

一些限制:

  • Python不支持作为第一类语言(截至编写时;但您可以使用pip和apt-get来安装python依赖项;请参阅本教程

  • 代码必须托管在github上(至少在使用官方版本时)

  ask by Matt translate from so

未解决问题?本站智能推荐: