GitHub実践入門(10)
コードのどの部分がテストされ、どの部分がテストされてないかを
教えてくれるツール
JenkinsやTravis CIでテストしてればあとは簡単なんだって
どれどれ
本の例はRubyなんでPythonに読み替えつつ
サイトのGET STARTED FOR FREEからGITHUB SIGN UP
ADD SOME REPOSでlearn-travisciをONにする
DetailをクリックするとPYTHON SET UP FOR COVERALLSっていう
ページが表示されるので言われたとおりに
Add our gem to your Gemfile:
gem 'coveralls', require: false
言われたとおりに?
なんぞこれ
ドキュメントをたどって Python | Coveralls Docs によると
z4r/python-coveralls か coagulant/coveralls-python を使えとのこと
coveralls-python の方がリリースが新しいのでこっちにしよう
travis用にインストールするので.travis.ymlにinstallを追加
さらに、カバレッジを測定するためにscriptでcoverageを通して
成功したらcoverallsを実行するようにする
language: python
python:
- "3.6"
install:
- pip install coveralls
script:
- coverage run test-hoge.py
after_success:
- coveralls
こうかな
commitしてpushしてやると・・・
$ git clone --depth=50 --branch=coveralls h
$ cd koba925/learn-travisci
$ git checkout -qf 4ce22a51b675b23744463c558de47aceb9a192ef
$ source ~/virtualenv/python3.6/bin/activate
$ python --version
Python 3.6.3
$ pip --version
pip 9.0.1 from /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (python 3.6)
install
$ pip install coveralls
$ coverage run test-hoge.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
The command "coverage run test-hoge.py" exited with 0.
$ coveralls
Submitting coverage to coveralls.io...
Coverage submitted!
Job #8.1
https://coveralls.io/jobs/43839844
Done. Your build exited with 0.
動いたっぽい
17 of 19 relevant lines covered (89.47%)
だって
通らないところは# pragma: no cover
をつけるといいらしい
if __name__ == "__main__": # pragma: no cover
print(hogehoge(5, 2))
print(pogepoge(3))
16 of 16 relevant lines covered (100.0%)
というわけ
ステータスのバッジもつけておこう
EMBEDというボタンからコピってREADMEに貼り付け
# Learn Travis CI
[![Build Status](https://secure.travis-ci.org/koba925/learn-travisci.png)](http://travis-ci.org/koba925/learn-travisci) [![Coverage Status](https://coveralls.io/repos/github/koba925/learn-travisci/badge.svg?branch=coveralls)](https://coveralls.io/github/koba925/learn-travisci?branch=coveralls)
できた