Movatterモバイル変換


[0]ホーム

URL:


Takafumi Ikeda, profile picture
Uploaded byTakafumi Ikeda
PDF, PPTX6,785 views

Jenkins+Play!で気軽にCI

Jenkins+Play!で気軽にCI第二回Jenkins勉強会5分で終わらなかったLT

Embed presentation

Download as PDF, PPTX
Jenkins + Play! で気軽にCI!
自己紹介●  池田尚史(いけだたかふみ)●  Twitter @ikeike443●  はてな id:ikeike443●  所属:シャノン●  Play!の翻訳協力    (http://playdocja.appspot.com)
マーケティングSaaSの会社です●    セミナー、イベントに強いです●    デブサミ●    Interop●    TechCrunchJapan(Teclosion)●    他いっぱい
本題Jenkins + Play! で気軽にCIするためのプラグインを書きましたその紹介をかねてPlay!のCI事情を話します
その前に。。。●    Play! Framework って知ってますか?●    試したことある方いらっしゃいますか?●    ツール、プロダクトを実装してリリース    までした方いらっしゃいますか?
Play! って?●    JavaをLLっぽく使うWebフレームワーク●    Railsライクなフルスタック●    100% no XML●    ServletもJSPも捨てちゃった*●    RESTfulなAPIを書くのがとっても楽
っていうか、Play!と言え    ば。。。
ですよねー
でも今日はScalaの話はしません
Jenkins+Play!のCI事情の話をします
あじぇんだ●    CI目線で見たPlay!のいいところ悪いとこ    ろ●    JenkinsをPlay!に統合するときどこが問    題になるか●    埋めるためにどんなプラグインを書いた    か(書いているか)
Play! のいいところ by CI目線●    単体テスト、結合テスト、受け入れテス    トを設定無しでさくっと書ける●    Coberturaプラグインでカバレッジも計    測できる●    テストにおけるDBの扱いがCool●    Fixtureもあるよ
用意されているテスト●    Unit Tests        –Junitで各クラスを●    Functional Tests        – Junit + HttpClient でコントローラを叩いて●    Selenium Test        –   ビルトインされたSelenium で受け入れテスト
Unit Testimport play.test.*;import org.junit.*;public class MyTest extends UnitTest {    @Test    public void aTest() {        assertEquals(2, 1 + 1); // A really important thing to test    }    @Test    public void testUsers() {        assertEquals(3, Users.count());    }}
Functional Testimport play.test.*;import play.mvc.*;import play.mvc.Http.*;import org.junit.*;public class ApplicationTest extends FunctionalTest {    @Test    public void testTheHomePage() {        Response response = GET("/");        assertStatus(200, response);    }}
Selenium Test#{selenium 'Test security'}  // Try to log in the administration area  clearSession()  open('/admin')  assertTextPresent('Login')  type('login', 'admin')  type('password', 'secret')  clickAndWait('signin')  // Verify that the user in correctly logged in  assertText('success', 'Welcom admin!')#{/selenium}※直接HTMLテーブルを書く方法でもできます
$ play test
Coberturaも使えるよ●    Coberturaプラグインが用意されています●    下記のように設定ファイルを書くだけで良い     # The cobertura test coverage module     %test.play.tmp=none     %test.module.cobertura=$    {play.path}/modules/cobertura     %test.cobertura.silent=false
でも悩むのはDBの扱い。。
インメモリDB使えるよ●    設定を下記のようにすると、テスト時のみ    HSQLDBにインメモリモードで接続してくれ    ます      %test.db=mem●    これはとても便利
DDLは?●    設定を下記のようにすると、テスト時のみ自    動でCreateしてくれます      %test.jpa.ddl=create-drop●    スキーマ情報はモデルクラスにアノテーショ    ンを書いて表現します(JPA使ってます)
Fixtureも用意されてるよ!    @Before    public void setUp() {         Fixtures.deleteAll();         Fixtures.load("data.yml");    }●    Yamlでデータを用意して、テストクラスに上    記のようにかけばいいです
要は、●    メモリ上に一時的にDBをCreate●    メモリ上のDBにテストデータを登録●    テストが終わったらDBをデータもろとも捨て    る    (Dropいらず)
とってもテストフレンドリー
Play! の悪いところ by CI目線●    依存関係管理の機構がない●    TestsRunnerはブラウザベースアプリと    して実装されていて、CIとの親和性が低    い
依存関係管理の機構がない●    ディレクトリ構成がMavenを拒否している       app       test       conf       lib       public●    作者のGuillaumeがMaven嫌い。ivy使えよ的な●    尚、Play!の次のリリースからはDependencyコマン    ドが追加されます(内部実装はivy使ってる)
TestsRunnerがブラウザアプリ
TestsRunnerがブラウザアプリ●    ブラウザ立ち上げないといけないし、手動テスト    じゃね?? ●    Jenkinsで自動実行するの辛くないスか?●    そう思っていた時期が僕にもありました
ご心配なく●    仮想フレームバッファ(Xfvb)があるよ!
ご心配なく●    下記コマンドがあります    $ play auto-test●    内部でHtmlUnitを使っています●    先程のTestsRunnerをバックグラウンドで走らせる    ことが出来ます●    これでJenkinsで自動ビルド&テストが可能です
HtmlUnitとは●    HtmlUnit is a "GUI-Less browser for Java    programs". It models HTML documents and    provides an API that allows you to invoke    pages, fll out forms, click links, etc... just like    you do in your "normal" browser.    (http://htmlunit.sourceforge.net/)●    Jenkins内部のHudsonTestCaseの中にも組み込ま    れてますよね
ちなみに半年くらいまえまでは●    auto-testコマンドに、このHtmlUnitサポートがな    かった●    つまり、自動テストをするためには、      – CiサーバにXを入れるか      – Xvfbを使って仮想のXを動かすか    のどちらかの対応が必要でした。。
ここまでおさらい●    JUnit●    HtmlUnit+Selenium●    Cobertura●    HSQLDB(インメモリ)●    Fixture    を特別なセットアップなしに気軽に使え    る●    依存関係管理は頑張りましょう。。。
さてそこでJenkins●    ビルド&テストは気軽に出来るけど、CIサー    バがない。●    Jenkins使おう
Play!をJenkinsで使う場合の問題点●    MavenでもAntでもない独自コマンドを使って    る●    テスト結果のフォーマットも独自    (っていうかHTML。。。)
とりあえず素朴にやってみよう●    設定
結果●    ビルド結果      失敗したことしか分からん。。      ※女性の写真は無関係です。。
結果●    ワークスペースこうなった
なんかHTMLいっぱいあってこわい。。
このままじゃ
Play!はCIに向かないFW   ( *´艸`)ププッ
とか言われちゃう。。
なのでプラグイン書きました
こんなふうに設定して
実行すると
こんなふうに結果を見られます
結果の詳細はこんな感じUnit TestSelenium Test
テストがこけるとこうなります
テストがこけるとこうなります
このプラグインがあれば
Play!はCIに向かないFW   ( *´艸`)ププッ
とか言われないで済む!  。。。はず
このプラグインを使えば●    JUnit●    HtmlUnit+Selenium●    Cobertura●    HSQLDB(インメモリ)●    Fixture    を特別なセットアップなしに気軽に使える    +カッコいいデザインのテスト結果!
依存関係管理は?…
プラグインの拡張で対応します!
Jenkinsのアップデートセンターに置いてあるので使ってみてくださ          い!
コードはGithubにありますhttps://github.com/jenkinsci/play-plugin
Jenkins + Play! で気軽にCIしましょう!
ご静聴ありがとうございました
おまけ
PaaSとの相性●    Play! はPaaSとの相性もいいです●    まずなによりPlay! 自体がPaaSを持って    います●    RailsのHeroku的な位置づけ    (機能全然足りてないですけど。。)
https://www.playapps.net/
PaaSとの相性●    GoogleAppEngine プラグインあり●    Stax Networks プラグインあり●    CloudeBees プラグインもある!?    ※Staxは最近CloudBeesに買収された

Recommended

PDF
Jenkinsではじめる継続的インテグレーション
PPTX
入門!Jenkins
PDF
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
PPTX
Jenkinsを使った初めての継続的インテグレーション
PDF
Jenkinsを利用したCI、弊社導入事例
PDF
Startup jenkins!
PDF
継続的デリバリーと読み解く Web 開発あるあるとその対策
PPTX
Jenkins使ってみた~Windows編~
PPTX
Vagrantでwindows仮想環境を構築しよう
PDF
Croozにおけるjenkins活用事例20130618
PDF
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
KEY
継続的インテグレーションとテストの話
PDF
邪道Jenkins
PDF
Jenkinsで始める継続的デリバリーと実践の道程
PDF
Jenkins実践入門目次チラ見せしちゃいます
PPTX
Net なプロジェクトでも jenkins を使ってみた
PDF
ドリコムJenkins勉強会資料
PDF
JenkinsとSeleniumの活用事例
PDF
20121019-jenkins-akiko_pusu.pdf
PDF
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
PDF
Javaユーザに贈るJenkins 25のTips
PDF
20121019 jenkins勉強会lt資料
PPTX
CIのもたらす世界
PDF
Ciじゃない方のJenkins
PDF
Jenkinsstudy#4kokawa
PDF
自ら肥え太る執事を現場に入れてみた
PDF
社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
PPTX
.Netconf
PDF
What is play
KEY
Play勉強会 in tokyo

More Related Content

PDF
Jenkinsではじめる継続的インテグレーション
PPTX
入門!Jenkins
PDF
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
PPTX
Jenkinsを使った初めての継続的インテグレーション
PDF
Jenkinsを利用したCI、弊社導入事例
PDF
Startup jenkins!
PDF
継続的デリバリーと読み解く Web 開発あるあるとその対策
PPTX
Jenkins使ってみた~Windows編~
Jenkinsではじめる継続的インテグレーション
入門!Jenkins
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを利用したCI、弊社導入事例
Startup jenkins!
継続的デリバリーと読み解く Web 開発あるあるとその対策
Jenkins使ってみた~Windows編~

What's hot

PPTX
Vagrantでwindows仮想環境を構築しよう
PDF
Croozにおけるjenkins活用事例20130618
PDF
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
KEY
継続的インテグレーションとテストの話
PDF
邪道Jenkins
PDF
Jenkinsで始める継続的デリバリーと実践の道程
PDF
Jenkins実践入門目次チラ見せしちゃいます
PPTX
Net なプロジェクトでも jenkins を使ってみた
PDF
ドリコムJenkins勉強会資料
PDF
JenkinsとSeleniumの活用事例
PDF
20121019-jenkins-akiko_pusu.pdf
PDF
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
PDF
Javaユーザに贈るJenkins 25のTips
PDF
20121019 jenkins勉強会lt資料
PPTX
CIのもたらす世界
PDF
Ciじゃない方のJenkins
PDF
Jenkinsstudy#4kokawa
PDF
自ら肥え太る執事を現場に入れてみた
PDF
社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
PPTX
.Netconf
Vagrantでwindows仮想環境を構築しよう
Croozにおけるjenkins活用事例20130618
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
継続的インテグレーションとテストの話
邪道Jenkins
Jenkinsで始める継続的デリバリーと実践の道程
Jenkins実践入門目次チラ見せしちゃいます
Net なプロジェクトでも jenkins を使ってみた
ドリコムJenkins勉強会資料
JenkinsとSeleniumの活用事例
20121019-jenkins-akiko_pusu.pdf
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Javaユーザに贈るJenkins 25のTips
20121019 jenkins勉強会lt資料
CIのもたらす世界
Ciじゃない方のJenkins
Jenkinsstudy#4kokawa
自ら肥え太る執事を現場に入れてみた
社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
.Netconf

Viewers also liked

PDF
What is play
KEY
Play勉強会 in tokyo
PDF
playdocjaのこれまでとこれから
ZIP
5分で説明する Play! scala
PDF
Herokuの多言語対応とPlay!
KEY
2011/10/08_Playframework_GAE_to_Heroku
PDF
Play FrameworkとWeb Socketの話
PDF
Opal chapter 4_a_new_hope
PDF
すごい cron ? - Jenkins 試した
PDF
JenkinsをJava開発でこんな感じで使っています
PDF
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
PPTX
Jenkinsを使ったコンシューマゲームでのデプロイとテスト
PPTX
ゲームエンジニアのためのデータベース設計
PDF
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
PDF
Cactus explorer 12 complete
PPT
Velazquez
PPTX
Requirements gathering with one note and livescribe
 
PPT
Tidak layak ke syurga mu
PPTX
LEAN & GREEN Restaurants (S11)
PPTX
Weekly news (22 – 26 nov
What is play
Play勉強会 in tokyo
playdocjaのこれまでとこれから
5分で説明する Play! scala
Herokuの多言語対応とPlay!
2011/10/08_Playframework_GAE_to_Heroku
Play FrameworkとWeb Socketの話
Opal chapter 4_a_new_hope
すごい cron ? - Jenkins 試した
JenkinsをJava開発でこんな感じで使っています
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
Jenkinsを使ったコンシューマゲームでのデプロイとテスト
ゲームエンジニアのためのデータベース設計
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
Cactus explorer 12 complete
Velazquez
Requirements gathering with one note and livescribe
 
Tidak layak ke syurga mu
LEAN & GREEN Restaurants (S11)
Weekly news (22 – 26 nov

Similar to Jenkins+Play!で気軽にCI

PPTX
Jenkins と groovy
KEY
Jenkins javascript ci
PDF
Playframework1でSeleniumテスト
PDF
Play jjug2012spring
PDF
Integration test with Arquillian and JBoss AS 7
PDF
Jenkins plugin memo
PPTX
TDC20111031_Groovy_Geb
PDF
Trac Plugin Developement with Jenkins
KEY
Play with Playframework
PDF
Awsで実現するseleniumテスト高速術
 
PPT
PHP agile test tips
PDF
Eclipse PDT + MakeGoodによるPHPコードのテスト
KEY
PlayFramework1.x基礎編
PDF
Playbay Play 2.0 plugin イロハのイ
PDF
はこだてIKA 第4回勉強会 単体テスト
PDF
第4回勉強会 単体テストのすすめ
PDF
ありえるえりあ勉強会@五反田~テスト編~ Part3
PDF
JenkinsとjMeterで負荷テストの自動化
PDF
JS開発におけるTDDと自動テストツール利用の勘所
PDF
CIBC workshop by imagire
Jenkins と groovy
Jenkins javascript ci
Playframework1でSeleniumテスト
Play jjug2012spring
Integration test with Arquillian and JBoss AS 7
Jenkins plugin memo
TDC20111031_Groovy_Geb
Trac Plugin Developement with Jenkins
Play with Playframework
Awsで実現するseleniumテスト高速術
 
PHP agile test tips
Eclipse PDT + MakeGoodによるPHPコードのテスト
PlayFramework1.x基礎編
Playbay Play 2.0 plugin イロハのイ
はこだてIKA 第4回勉強会 単体テスト
第4回勉強会 単体テストのすすめ
ありえるえりあ勉強会@五反田~テスト編~ Part3
JenkinsとjMeterで負荷テストの自動化
JS開発におけるTDDと自動テストツール利用の勘所
CIBC workshop by imagire

More from Takafumi Ikeda

PDF
CEDEC2015講演 チーム開発をスムーズにするために
PDF
Dev love kansai
PDF
チーム開発をスムーズにするために何ができるか
PDF
Scala conf2013
PDF
Play ja 3_update
PDF
Websocket shanon
PDF
Play ja kansai
PDF
Shibutra ikeike443
CEDEC2015講演 チーム開発をスムーズにするために
Dev love kansai
チーム開発をスムーズにするために何ができるか
Scala conf2013
Play ja 3_update
Websocket shanon
Play ja kansai
Shibutra ikeike443

Jenkins+Play!で気軽にCI


[8]ページ先頭

©2009-2025 Movatter.jp