kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

GitHub実践入門(10)

Coveralls

コードのどの部分がテストされ、どの部分がテストされてないかを
教えてくれるツール
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)

できた

f:id:kb84tkhr:20190106204402p:plain