Pythonの継続的インテグレーション環境を無料で簡単にセットアップする方法
利用するサービス
事前準備
- GitHubアカウントの取得
- リポジトリ作成
- RubyGemのインストール(Travisコマンドインストールに使用)
Travis CIのアカウント取得とリポジトリ選択
- 右上のリンクからGitHubアカウントでサインイン
- テストしたいリポジトリをONに変更
テストコード
- tests/hoge_test.py
- src/fuga.py
tests/hoge_test.py
- "test_first"を表示
- Fugaクラスのindexメソッドを呼び出してTrueを確認する。
tests/hoge_test.py
# coding:utf-8
import unittest
from fuga import Fuga
class HogeTest(unittest.TestCase):
def setUp(self):
print('setUp')
def test_first(self):
print('test_first')
def test_fuga(self):
fuga = Fuga()
self.assertTrue(fuga.index())
def suite():
suite = unittest.TestSuite()
suite.addTests(unittest.makeSuite(HogeTest))
return suite
tests/fuga.py
-
index()
:Trueを返す。
src/fuga.py
# coding utf-8
class Fuga:
def index(self):
return True
設定ファイル
- setup.py
- .travis.yml
setup.py
- 実行環境の設定スクリプト
-
sys.path.append()
に使用するコードのパスを設定 -
test_suite
にコード中でsuite.addTests()
したテストファイル名を"testfile_name.suite"の形式で指定
setup.py
from setuptools import setup, find_packages
import sys
sys.path.append('./src')
sys.path.append('./tests')
setup(
name = 'Hoge',
version = '0.1',
description='This is test codes for travis ci',
packages = find_packages(),
test_suite = 'hoge_test.suite'
)
.travis.yml
- Travis CIの設定ファイル
-
python:
バージョン指定 -
install:
pipでcoverallsパッケージをインストール -
script:
coverageコマンドでテストを実行 -
after_script:
coverallsコマンドを実行 -
notifications:
slackへの通知設定
.travis.yml
language: python
python:
- 3.3
- 3.4
install:
- pip install coveralls
script:
- coverage run --source=hoge_test setup.py test
after_success:
- coveralls
notifications:
slack:
secure: your_token_key
- CoverAllとの連携についてはCOVERALLS FOR PYTHONを参照
- notificationの設定はConfiguring Build Notificationsを参照
- your_token_keyを暗号化する方法はEncryption keysを参照
※ rbenvを使ってる場合はrehashをお忘れなく - coveralls-pythonライブラリがpython3.0 ~ 3.2について対応しなくなったので、テストバージョンを3.3以上にする。
GitHubにPush
結果表示についてはCI環境構築 ~ PHP編 ~を参照