持续集成
注意有关编写测试的建议, 请参阅
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 服务器上的时候将会自动运行你项目中的测试。