2014/6/28@yando
Travis CIで実現する

PHPアプリの自動テスト
yando
CandyCane / php
書籍
Chef 実践入門 CakePHP2 実践入門 同姓同名
自分
小説家
安藤祐介
刀鍛冶
安藤祐介
note.mu/yando
Yak Shaving
engineyard.co.jp
業務レベルのPaaS
PHP/Ruby/Node/Java

ご入用の際は是非
本日お話すること
なぜTravis CIなのか?
Travis CIの使い方
Travis CIで出来る様々なテスト
なぜTravis CIなのか
テストしてますか
http://fjord.jp/love/1084.html
Jenkins
Jenkinsサーバの

構築・運用はつらい
なぜか
要求は異なる
アプリAの必要なPHP、DB、ソフト
アプリBの必要なPHP、DB、ソフト
アプリCの必要なRuby、DB、ソフト
つらいならやめよう
継続的インテグレーション SaaS
2011年2月に誕生? ベルリン発
Mathias Meyer & Josh Kalderimis
テスト環境がオープンソース
Travis CI
オープン、分散、即時
複数バージョンでの並行テスト
ライブラリ開発者、利用者
Higher Quality Code
Make the world a better place
特長
C
C++
Clojure
Erlang
Go
Groovy
Haskell
Java
JavaScript
Objective-C
Perl
PHP
Python
Ruby
Scala
…
超対応
Email
IRC
Campfire
Flowdock
HipChat
Sqwiggle
Slack
Webhook
通知も多彩
オープンソース

無料
プライベート

$129 ∼ $489 (並行ジョブ数が異なる)

リポジトリ数は無制限!
料金
Travis CIの使い方
Ubuntu 12.04 LTS Server Edition 64bit
テストごとにまっさらな環境
Chefで構築されている
テスト環境
コードをGitHubに置く
Travis CIからアカウント連携
該当リポジトリのスライダーをON
前提条件
Travis CIにCIの設定を指示
言語、バージョン、事前処理
テストに必要な 情報も書ける
文法チェックも可能
.travis.yml
.travis.yml
バージョン
テストは?
賢いデフォルトに合わせると楽
phpunit
composer pyrus pearも使用可能
pecl apt-getもいける
自由に設定
install:
before_install:
script:
ビルドステータス
おどろき
猛烈に簡単
猛烈に便利
Travis CIで出来る

様々なテスト
テストの再実行
ネットワークなどが原因の際
再実行すれば通る
落ち着いてWebのボタンを押す
Selenium Testing
Travis CIにはfirefoxが入っている
xVfbを起動してブラウザを起動
ブラウザを使ったテストを自動化
phpunitから制御
Travis CI VM
xVfb
firefox
Java
Selenium
PHP
WebApp
phpunit
暗号化
APIキーなどをそのままコミット?
travis gem でencrypt
.travis.yml に secure: encrypted
実行時にデコードして解釈
暗号化の例
Engine Yard連携
GitHubへコードをプッシュ
Travis CIがテストを実行
自動でEngine Yardへデプロイ!
iOS / Android
スマホアプリのCIも可能
OSXにXCodeが入ったVM
Android SDKも同様
Simulatorも入っている
それでも自分で作る?
続きはブログで

Travis CIで実現するPHPアプリの自動テスト