ゼロから始める(た) Travis CI
Travis CIって?
Travis CIを使うと、GitHubにコードをプッシュするだけで自動的にコードのテストを行ってくれる。
さらにテスト結果がメールで届いたりする。
SignUpからテストの実行まで,一通り行ったので手順をメモっておく。
このページを読むと…
Travis CIを使って、プログラムの簡単なテストが出来るようになる。
前提知識
“ゼロから"と言っても、やはり多少の準備は必要
- GitHubのアカウントを持っている
git commit
,git push
等ができる- シェルの基本的なコマンドの意味がわかる (
echo hoge > hoge.txt
とか)
逆に言えば、これぐらいの知識でも使いはじめることはできるということ
準備編
練習用のリポジトリを作ろう
GitHubの自分のページに、練習用のリポジトリを作成しよう。
practice_Travis_CI
でもなんでもOK。
Travis CIに登録しよう
Travis CIのページにアクセスし、Sign Up ボタンを押す。
GitHubのアカウントとパスワードを入力するだけで登録完了。
リポジトリをTravis CIに登録しよう
Travis CIのページの左側に、[My Repositories]ボタンがあるのでクリックすると、自分のリポジトリ一覧が見れる。
リポジトリ名の左側にチェックスイッチがあるので、テストしたいリポジトリのスイッチをONにしておく。
これで準備完了。
実践編
実際にテストを行うには最低でも以下の4つのファイルが必要になる。
- テスト対象となるプログラム
- テスト内容について記述してある.yml(やむる)ファイル
.travis.yml
。*1 .travis.yml
によって呼び出される、テストを実行するシェルスクリプト- プログラムの望ましい出力結果が記述してあるリファレンスファイル
スイッチオンにしたリポジトリに更新をgit push
すると、.travis.yml
ファイルにある記述に従って、自動的にテストが実行される。
それぞれ実際に作成してみる
1 テスト対象のプログラム(target.py)
何でもいい。今回は0~10までの値を標準出力に書き出すpythonプログラム、target.py
にした。
#!/usr/bin/env python #coding:utf-8 #0から10まで標準出力する for i in range(11): print i
2 .travis.yml
テスト内容について記述してある.ymlファイル。
script: sh -e ./test.sh
意味
3 テスト用のシェルスクリプト(test.sh)
#!/bin/sh python target.py > result diff result ref echo $?
意味
- プログラム
target.py
を実行して、結果をresultってファイルに書き込んでね - resultとリファレンス用のファイルrefの内容を、diffコマンドで比較してね(一致すると終了ステータスは0になる)
- 終了ステータスを吐いてね
4 リファレンス用ファイル(ref)
プログラムの望ましい実行結果が書いてあるファイル
中身
0 1 2 3 4 5 6 7 8 9 10
こんだけ*3。
テスト実行
先述の4つのファイル(target.py, .travis.yml, test.sh, ref)を作成し、git add
-> git commit
-> git push
すればOK。
今後はリポジトリの内容を更新してgit push
するたびに勝手にテストが実行される。
結果はTravis CIのページで確認できる。メールで報告も来る。
テスト結果
成功すると(するんだけど)こんな感じ
target.pyかrefを適当に書き換えると、テスト失敗が帰ってくる。こんな感じ
もっと
これ↓とか詳しい
knowledge.sakura.ad.jp