持续集成

优质
小牛编辑
152浏览
2023-12-01

注意有关编写测试的建议, 请参阅 Testing Your Code.

Why?

与 Kent Beck 一起撰写关于 持续集成 (简称 : CI ) 的 Martin Fowler 对 CI 进行了如下的描述:

持续集成是一种软件开发实践,团队成员经常整合他们的工作,通常每个人至少每天集成一次 - 导致每天进行多次集成。 每个集成都通过自动构建(包括测试)进行验证,以尽快检测集成错误。 许多团队发现这种方法可以显着减少集成问题,并且可以让团队更快速地开发有凝聚力的软件。

Jenkins

Jenkins CI 是可扩展的持续集成引擎。 推荐使用!

Buildbot

Buildbot 是一个检查代码变化的自动化编译 / 测试的 Python 系统。

Tox

Tox 是一款专为为 Python 应用定制的打包、测试自动化工具,基于命令行或 CI 服务器。它是一个通用的虚拟环境管理和测试的命令行工具,提供如下特性:

  • 检查包在不同的 Python 版本和解释器下是否能正确安装;
  • 在每个环境中运行您的测试、配置你选择的测试工具;
  • 作为持续集成服务器的控制台,减少了样板文件,合并了 CI 和基于 shell 的测试。

Travis-CI

Travis-CI 是一个分布式 CI 服务器,免费为开源项目构建测试。 它提供多个 worker 并行运行 Python 测试,并能和 GitHub 无缝集成。它甚至能对 Pull Requests 进行自动化测试,并将结果添加到 PR 的评论列表里。Travis-ci 非常简单,你可以从 Travis-ci 开始了解持续集成。

开始之前,你需要将 .travis.yml 文件加入到代码仓库中,内容如下:

language: python
python:
  - "2.6"
  - "2.7"
  - "3.2"
  - "3.3"
# command to install dependencies
script: python tests/test_all_of_the_units.py
branches:
  only:
    - master

这将会使你的项目在罗列的 Python 版本中,用给定的脚本进行测试,而且只会对主干分支进行测试。 有许多可供开启的选项,包括通知、步骤前后等。 Travis-ci 官方文档 详尽地解释了所有这些操作。

为了激活项目的 CI 测试,你需要去 travis-ci 网站 登录您的 GitHub 账号。然后在您的 profile 设置中激活项目。现在,每一次你将 commit 提交到 Github 服务器上的时候将会自动运行你项目中的测试。