幾つかあるCIサービスのうち、Travis CIを使ってみようと思い試してみた。
前提
- 手元にGoogle App Engineを利用したPythonプロジェクトがあること
- そのプロジェクトをGitHubのPublicプロジェクトとして管理していること
- Pythonのunittestを行える環境がローカルに存在すること
- Travis CIのアカウントを持っていること
GAE SDKを利用したスクリプトの作成
これをそのまま適当な名前でプロジェクト直下に保存すればよい。ここではtest_gae.pyとする。
テストの作成
tests/を作成し、その直下に__init__.py(空でよい)とテストスクリプトを書く。次のものは、nameとownerプロパティを持つGroupモデルのテスト例。テストの実行
python test_gae.py <Google App Engine SDKのパス> <テストディレクトリ>
(e.g. python test_gae.py /usr/local/google_appengine tests/)
実行結果 |
これでテストは通った。
CI対象プロジェクトの指定
ログイン → Accountsで表示されるプロジェクトから、Travis CIの対象にするプロジェクトのスイッチをONにする。
CIプロジェクトの設定 |
Travis CI用設定ファイルの作成
Google App Engine SDKをダウンロードしてパスに通す荒業を実行する。というわけで.travis.ymlを次のように書いてプロジェクト直下に保存する。
install → 必要なパッケージの指定(requirements.txt: pip freezeの内容)
before_script → Google App Engine SDKのダウンロードおよび展開
script → テストの実行
これで、次回以降のGitHubへのプッシュ時にTravis CIでscriptのテスト内容が実行される。
[追記]
travis-lintというgemが存在する。gem installしてtravis-lintコマンドをプロジェクト直下で実行すると、
.travis.ymlが正しいか否かを確認できる。
0 件のコメント:
コメントを投稿