Python的“漂亮”持续集成

2024-05-16 22:34:01 发布

您现在位置:Python中文网/ 问答频道 /正文

这有点。。毫无疑问,但是BuildBot的输出不是特别好看。。

例如,与。。

…和其他人,BuildBot看起来相当。。古代的

我目前正在使用Hudson,但它非常以Java为中心(尽管使用this guide,我发现它比BuildBot更容易安装,并且生成了更多的信息)

基本上:有没有针对python的持续集成系统,可以生成许多闪亮的图形等?


更新:自这一次以来,Jenkins项目已经取代Hudson成为该包的社区版本。最初的作者也搬到了这个项目。Jenkins现在是Ubuntu/Debian、RedHat/Fedora/CentOS等的标准包。以下更新基本上仍然正确。使用Jenkins执行此操作的起点不同。

更新:在尝试了一些替代方案后,我想我会坚持使用Hudson。Integrity很好也很简单,但是非常有限。我认为Buildbot更适合有许多构建从机,而不是像我使用的那样在一台机器上运行的所有东西。

为Python项目设置Hudson非常简单:

  • http://hudson-ci.org/下载Hudson
  • java -jar hudson.war运行它
  • 打开默认地址为http://localhost:8080的web界面
  • 去管理哈德逊,插件,点击“更新”或类似
  • 安装Git插件(我必须在Hudson全局首选项中设置git路径)
  • 创建新项目、输入存储库、SCM轮询间隔等
  • 如果尚未安装nosetests,请通过easy_install安装nosetests
  • 在a build步骤中,添加nosetests --with-xunit --verbose
  • 选中“Publish JUnit test result report”并将“test report XMLs”设置为**/nosetests.xml

这就是所需要的。您可以设置电子邮件通知,并且the plugins值得一看。我目前在Python项目中使用的几个:

  • SLOCCount plugin计算代码行数(并绘制图表!)-您需要单独安装sloccount
  • Violations要分析PyLint输出(您可以设置警告阈值,绘制每个生成上的冲突数)
  • Cobertura可以分析coverage.py输出。Nosetest可以在运行测试时收集覆盖率,使用nosetests --with-coverage(这会将输出写入**/coverage.xml

Tags: 项目testreport插件httpwithcoverage绘制
3条回答

不知道是否可行:Bitten由编写Trac的人制作,并与Trac集成。Apache Gump是Apache使用的CI工具。它是用Python编写的。

您可能想签出Nosethe Xunit output plugin。您可以让它运行单元测试,并使用以下命令检查覆盖率:

nosetests --with-xunit --enable-cover

如果您想使用Jenkins路由,或者如果您想使用另一个支持JUnit测试报告的CI服务器,这将非常有用。

类似地,您可以使用violations plugin for Jenkins捕获pylint的输出

我们成功地将TeamCity作为CI服务器,并使用nose作为测试运行程序。Teamcity plugin for nosetests为失败的测试(可以通过电子邮件发送)提供可读的通过/失败计数显示。您甚至可以在堆栈运行时看到测试失败的详细信息。

当然,如果它支持在多台机器上运行,那么它的设置和维护要比buildbot简单得多。

相关问题 更多 >