Pythonのプロジェクトでtoxを使って複数PythonバージョンでTravisCIしてCoverallsを使う方法です。
手元ではPython3.5で開発して、2.xでも動くのかな?Coverageは大丈夫かな?という想いを全てをgit pushにのせていくスタイルです。
tox + TravisCI
toxを使ってPython2.7, 3.3, 3.4でテストする".travis.yml"と"tox.ini"です。
testsディレクトリにテストが用意してあって、テストツールにはpytestを使っています。
.travis.yml
language: python
env:
- TOXENV=py27
- TOXENV=py33
- TOXENV=py34
install:
- pip install tox
script: tox
tox.ini
[tox]
envlist = py{27,33,34}
[testenv]
basepython =
py27: python2.7
py33: python3.3
py34: python3.4
deps =
pytest
commands =
py.test tests
TravisCIでリポジトリを有効してpushするとそれぞれのPythonでテストが始まります。
PyPIに登録してあるパッケージを、toxでテストするとShields.ioでいい感じのバッジを作れます。
READMEに貼ってあるとわかりやすくて良い感じです。
TravisCI + Coveralls
TravisCIのテストが成功したときCoverallsにカバレッジさせるようにします。
PythonにはCoverallsのパッケージがあるのでこれを使うことで.travis.ymlに設定を追加するだけでCoverallsを使えます。
Coverallsの公式ドキュメントでも紹介されています(Python – Coveralls)。
Coverallsに対応した.travis.ymlの内容です。
language: python
env:
- TOXENV=py27
- TOXENV=py33
- TOXENV=py34
install:
- pip install tox
- pip install coveralls
script:
- tox
- coverage run --source=sample py.test tests
- coverage report -m
after_success: coveralls
Coverallsでリポジトリを有効にしておけば、TravisCIで成功後にCoverallsが走ります。
まとめ
ローカルでtoxの用意したり、カバレッジを確認するのが面倒な方にはこの方法いいかもしれません。
Show comments