如何在Travis-CI中使用Tox测试不同的 Python 版本?
我有一个tox.ini
:
[tox]
envlist = py{27,33,34,35}
recreate = True
[testenv]
basepython =
py27: python2.7
py33: python3.3
py34: python3.4
py35: python3.5
deps =
-r{toxinidir}/pip-requirements.txt
-r{toxinidir}/pip-requirements-test.txt
commands = py.test
它在几个 Python 版本中运行我的 Python 单元测试并且运行良好。
我想在 Travis-CI 中设置一个构建,以便在我将更改推送到 Github 时自动运行它,所以我有一个.travis.yml
:
language: python
python:
- "2.7"
- "3.3"
- "3.4"
- "3.5"
install:
- pip install tox
script:
- tox
这在技术上似乎可行,但它在每个版本的 Python 中冗余地运行我所有的测试......来自每个版本的 Python。因此,需要 5 分钟的构建现在需要 45 分钟。
我尝试python
从我的 yaml 文件中删除该列表,因此 Travis 只会运行一个 Python 实例,但这会导致我的 Python3.5 测试失败,因为找不到 3.5 解释器。显然,这是一个已知的限制,因为 Travis-CI 不会安装 Python3.5,除非您在配置中指定确切的版本......但它不会对其他版本执行此操作。
有没有办法解决这个问题?