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

Preview:

Citation preview

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 VMxVfbfirefox

JavaSelenium

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も入っている

それでも自分で作る?

続きはブログで

Recommended