Python代码库的持续集成系统

vomnis 发布于 2018-02-04 python 最后更新 2018-02-04 01:01 1072 浏览

我开始使用python代码库开展业余爱好项目,并希望设置某种形式的持续集成(例如,每次进行登记时运行一组测试用例,并在每次进行签入时发送唠叨的电子邮件给负责人测试失败)类似于CruiseControl或TeamCity。 我意识到我可以在大多数VCS中使用钩子来做到这一点,但是这要求测试在与版本控制服务器相同的机器上运行,这不像我想的那样优雅。有没有人有任何建议,适合Python代码库的小型,用户友好的,开源的持续集成系统?

已邀请:

tet

赞同来自:

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

Hudson embraces Python
但是我从来没有尝试过。 (更新,2011年9月:商标纠纷Hudson已更名为Jenkins)。

qullam

赞同来自:

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

eomnis

赞同来自:

其次是Buildbot - Trac整合。您可以在Buildbot website上找到关于集成的更多信息。在我以前的工作中,我们编写并使用了他们提到的插件(tracbb)。 插件做的是重写所有的Buildbot的URL,所以你可以在Trac中使用B​​uildbot。 (http://example.com/tracbb)。 关于Buildbot的真正好处是配置是用Python编写的。您可以将自己的Python代码直接集成到配置中。编写自己的BuildSteps来执行特定的任务也很容易。 我们使用BuildSteps从SVN获取源代码,拉取依赖关系,将测试结果发布到WebDAV等等。 我写了一个X10接口,所以我们可以发送带有生成结果的信号。当建设失败,我们打开一个红色的熔岩灯。当建造成功,一个绿色的熔岩灯亮起。美好时光 :-)

fearum

赞同来自:

我们同时使用Buildbot和Hudson进行Jython开发。两者都是有用的,但有不同的优点和缺点。 Buildbot的配置是纯粹的Python,一旦你掌握了它,就很简单了(查看epydoc生成的API文档以获得最新的信息)。 Buildbot使定义非测试任务和分发测试人员变得更加容易。但是,它确实没有单独的测试的概念,只是文本,HTML和汇总输出,所以如果你想有多级可浏览的测试输出等,你必须自己构建它,或者只是使用哈德森。 哈德逊从整体结果进入测试套件和单独测试的支持非常好,对于构建之间的测试输出进行比较也是很好的,但是分布式(主/从)的东西比较复杂,因为你也需要一个Java环境。同样,哈德森也不太容忍主从机之间的片状网络连接。 因此,为了获得这两个工具的好处,我们运行一个Hudson实例,捕获常见的测试失败,然后使用Buildbot进行多平台回归。 以下是我们的实例:

quia_a

赞同来自:

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

funde

赞同来自:

TeamCity有一些Python integration。 但TeamCity是:

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

met

赞同来自:

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

  • 安装程序在不到配置文件的一半屏幕
  • 中完成
  • 您可以自行安装,也可以使用免费的托管版本
  • github仓库的半自动设置
  • 网站上不需要帐户;通过github登录
  • 一些限制:
    • 不支持Python作为第一类语言(截至编写之时;但您可以使用pip和apt-get安装python依赖项;请参阅this tutorial)
    • 代码必须在github上托管(至少在使用官方版本时)