61
2014/6/28 @yando Travis CIで実現する PHP アプリの自動テスト

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

  • Upload
    yandod

  • View
    579

  • Download
    3

Embed Size (px)

Citation preview

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

2014/6/28@yando

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

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

yando

CandyCane / php

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

書籍

Chef 実践入門 CakePHP2 実践入門 同姓同名

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

自分小説家

安藤祐介

刀鍛冶

安藤祐介

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

note.mu/yando

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

Yak Shaving

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

engineyard.co.jp

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

業務レベルのPaaS

PHP/Ruby/Node/Java

ご入用の際は是非

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

本日お話すること

なぜTravis CIなのか?

Travis CIの使い方

Travis CIで出来る様々なテスト

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

なぜTravis CIなのか

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

テストしてますか

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

http://fjord.jp/love/1084.html

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

Jenkins

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

Jenkinsサーバの

構築・運用はつらい

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

なぜか

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

要求は異なる

アプリAの必要なPHP、DB、ソフト

アプリBの必要なPHP、DB、ソフト

アプリCの必要なRuby、DB、ソフト

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

つらいならやめよう

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

継続的インテグレーション SaaS

2011年2月に誕生? ベルリン発

Mathias Meyer & Josh Kalderimis

テスト環境がオープンソース

Travis CI

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

オープン、分散、即時

複数バージョンでの並行テスト

ライブラリ開発者、利用者

Higher Quality Code

Make the world a better place

特長

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

C C++ Clojure Erlang Go Groovy Haskell Java

JavaScript Objective-C Perl PHP Python Ruby Scala …

超対応

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

Email IRC Campfire Flowdock

HipChat Sqwiggle Slack Webhook

通知も多彩

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

オープンソース

無料

プライベート

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

リポジトリ数は無制限!

料金

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

Travis CIの使い方

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

Ubuntu 12.04 LTS Server Edition 64bit

テストごとにまっさらな環境

Chefで構築されている

テスト環境

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

コードをGitHubに置く

Travis CIからアカウント連携

該当リポジトリのスライダーをON

前提条件

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

Travis CIにCIの設定を指示

言語、バージョン、事前処理

テストに必要な鍵情報も書ける

文法チェックも可能

.travis.yml

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

.travis.yml

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

バージョン

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

テストは?

賢いデフォルトに合わせると楽

phpunit

composer pyrus pearも使用可能

pecl apt-getもいける

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

自由に設定

install:

before_install:

script:

Page 39: Travis CIで実現するPHPアプリの自動テスト
Page 40: Travis CIで実現するPHPアプリの自動テスト
Page 41: Travis CIで実現するPHPアプリの自動テスト

ビルドステータス

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

おどろき

猛烈に簡単

猛烈に便利

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

Travis CIで出来る

様々なテスト

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

テストの再実行

ネットワークなどが原因の際

再実行すれば通る

落ち着いてWebのボタンを押す

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

Selenium Testing

Travis CIにはfirefoxが入っている

xVfbを起動してブラウザを起動

ブラウザを使ったテストを自動化

phpunitから制御

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

Travis CI VMxVfbfirefox

JavaSelenium

PHP

WebApp

phpunit

Page 48: Travis CIで実現するPHPアプリの自動テスト
Page 49: Travis CIで実現するPHPアプリの自動テスト
Page 50: Travis CIで実現するPHPアプリの自動テスト
Page 51: Travis CIで実現するPHPアプリの自動テスト

暗号化

APIキーなどをそのままコミット?

travis gem でencrypt

.travis.yml に secure: ‘encrypted’

実行時にデコードして解釈

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

暗号化の例

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

Engine Yard連携

GitHubへコードをプッシュ

Travis CIがテストを実行

自動でEngine Yardへデプロイ!

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

iOS / Android

スマホアプリのCIも可能

OSXにXCodeが入ったVM

Android SDKも同様

Simulatorも入っている

Page 56: Travis CIで実現するPHPアプリの自動テスト
Page 57: Travis CIで実現するPHPアプリの自動テスト
Page 58: Travis CIで実現するPHPアプリの自動テスト

それでも自分で作る?

Page 59: Travis CIで実現するPHPアプリの自動テスト
Page 60: Travis CIで実現するPHPアプリの自動テスト
Page 61: Travis CIで実現するPHPアプリの自動テスト

続きはブログで