JenkinsJavaScriptCI             @thunder_mono
アジェンダ• JavaScriptでのテストについて• JSTestDriverとは• JSTestDriver + JenkinsでCI
JavaScriptでのテストについて• 群雄割拠 JSの世界はテスティングフレームワークが 色々ありすぎてもうそれはそれは… QUnit, Jasmine, JsTestDriver, BusterJS, Mocha, JSUnit, etc...
JavaScriptでのテストについて• 今回はその中からJsTestDriverを扱います。 ・『テスト駆動JavaScript』で取り上げられている ・比較的新しめで使用感がいい感じ
JsTestDriverとは• 特徴 キャプチャ用のサーバーを立て、 各ブラウザでアクセスしてキャプチャし、 テスト実行コマンドを打ってテストを 行うことが出来る
# 1. キャプチャ用のサーバーを立てる$ java -jar JsTestDriver-1.3.4.b.jar --port 4224# 2. サーバーにアクセスする# ブラウザで http://localhost:4224 にアクセス(複数...
# 4. 結果が表示されるsetting runnermode QUIET...Total 3 tests (Passed: 3; Fails: 0; Errors: 0) (0.00 ms)   Safari 534.34 Mac OS: R...
# gemの jstdutilを利用するといくらか便利になります# ※要ruby環境$ gem install jstdutil$ jstestdriver ¥  --server http://localhost:4224 ¥  --confi...
JsTestDriver + JenkinsでCIJenkinsとの連携はすごい簡単。簡単な流れを書くと、•   【ビルド】->「シェルの実行」    テスト実行コマンドを書く    その際、JUnit形式のテスト結果XMLを吐かせる•   【...
# 「シェルの実行」に書く内容の例[javaのパス]java -jar [JsTestDriverのパス]JsTestDriver[バージョン番号].jar --server "http://localhost:4224" --config [j...
その他• JavaScriptの単体テストのライブラリは 群雄割拠のため、他のライブラリだと どういった状況なのか不明。• WebKitを使ったヘッドレスブラウザの PhantomJSを使えばサクサクテストが可能。 ただし実際のブラウザではない...
その他• Git/SVNなどのSCMでクライアントサイド JavaScriptをどう管理すべきか? サブモジュール?一元管理?• 変更に強い単体テストを行うには 最低限Viewとmodelが別れてないと キツいよね・・・ →Observer楽し...
その他• JsTestDriverのサイトにCodeCoverageを 取得するJarが置いてました。 これもJenkinsで扱えるみたい(未確認)• JavaScriptのミニファイもJenkinsでやれるはず
まとめ• JsTestDriver + Jenkinsの構成であれば 環境構築は簡単• むしろJavaScript以外のコードとの兼ね合いや 他のテストコードとの兼ね合いを 気にする必要あり• CodeCoverageとか単体テスト以外の項目に...
参考文献•   テスト駆動JavaScript    Christian Johansen 著、長尾高弘 訳    アスキーメディアワークス 発刊•   JavaScript continuous integration with Hudson...
Upcoming SlideShare
Loading in …5
×

Jenkins javascript ci

942
-1

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
942
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Jenkins javascript ci

    1. 1. JenkinsJavaScriptCI @thunder_mono
    2. 2. アジェンダ• JavaScriptでのテストについて• JSTestDriverとは• JSTestDriver + JenkinsでCI
    3. 3. JavaScriptでのテストについて• 群雄割拠 JSの世界はテスティングフレームワークが 色々ありすぎてもうそれはそれは… QUnit, Jasmine, JsTestDriver, BusterJS, Mocha, JSUnit, etc....
    4. 4. JavaScriptでのテストについて• 今回はその中からJsTestDriverを扱います。 ・『テスト駆動JavaScript』で取り上げられている ・比較的新しめで使用感がいい感じ
    5. 5. JsTestDriverとは• 特徴 キャプチャ用のサーバーを立て、 各ブラウザでアクセスしてキャプチャし、 テスト実行コマンドを打ってテストを 行うことが出来る
    6. 6. # 1. キャプチャ用のサーバーを立てる$ java -jar JsTestDriver-1.3.4.b.jar --port 4224# 2. サーバーにアクセスする# ブラウザで http://localhost:4224 にアクセス(複数可)# 3. テスト実行コマンドを流す$ java -jar ./JsTestDriver-1.3.4.b.jar ¥ --server http://localhost:4224 ¥ --config jsTestDriver.conf ¥ --tests all
    7. 7. # 4. 結果が表示されるsetting runnermode QUIET...Total 3 tests (Passed: 3; Fails: 0; Errors: 0) (0.00 ms) Safari 534.34 Mac OS: Run 3 tests (Passed: 3; Fails: 0; Errors0) (0.00 ms)
    8. 8. # gemの jstdutilを利用するといくらか便利になります# ※要ruby環境$ gem install jstdutil$ jstestdriver ¥ --server http://localhost:4224 ¥ --config jsTestDriver.conf ¥ --tests allsetting runnermode QUIET...Total 3 tests (Passed: 3; Fails: 0; Errors: 0) (1.00 ms) Safari 534.34 Mac OS: Run 3 tests (Passed: 3; Fails: 0; Errors0) (1.00 ms)
    9. 9. JsTestDriver + JenkinsでCIJenkinsとの連携はすごい簡単。簡単な流れを書くと、• 【ビルド】->「シェルの実行」 テスト実行コマンドを書く その際、JUnit形式のテスト結果XMLを吐かせる• 【ビルド後の処理】 -> 「JUnitテスト結果の集計」なお、テスト実行前にブラウザのキャプチャまではやっておく必要あり
    10. 10. # 「シェルの実行」に書く内容の例[javaのパス]java -jar [JsTestDriverのパス]JsTestDriver[バージョン番号].jar --server "http://localhost:4224" --config [jstestdriverのパス]jstestdriver.conf --tests all --testOutput [jenkinsのWorkspace以下の適当なディレクトリ]testOutput/ --reset# 「 JUnitテスト結果の集計」には上記の --testOutputの内容を記載
    11. 11. その他• JavaScriptの単体テストのライブラリは 群雄割拠のため、他のライブラリだと どういった状況なのか不明。• WebKitを使ったヘッドレスブラウザの PhantomJSを使えばサクサクテストが可能。 ただし実際のブラウザではないので 使いどころに注意が必要。
    12. 12. その他• Git/SVNなどのSCMでクライアントサイド JavaScriptをどう管理すべきか? サブモジュール?一元管理?• 変更に強い単体テストを行うには 最低限Viewとmodelが別れてないと キツいよね・・・ →Observer楽しいよObserver
    13. 13. その他• JsTestDriverのサイトにCodeCoverageを 取得するJarが置いてました。 これもJenkinsで扱えるみたい(未確認)• JavaScriptのミニファイもJenkinsでやれるはず
    14. 14. まとめ• JsTestDriver + Jenkinsの構成であれば 環境構築は簡単• むしろJavaScript以外のコードとの兼ね合いや 他のテストコードとの兼ね合いを 気にする必要あり• CodeCoverageとか単体テスト以外の項目にも 手を出したいところ
    15. 15. 参考文献• テスト駆動JavaScript Christian Johansen 著、長尾高弘 訳 アスキーメディアワークス 発刊• JavaScript continuous integration with Hudson and JsTestDriver http://cjohansen.no/en/javascript/ javascript_continuous_integration_with_hudson_and_jstestdriver• 0-9 JsTestDriverとphantomjsとJenkinsを使ってのJSの継続的なテスト http://0-9.tumblr.com/post/23350719162/jstestdriver-phantomjs-jenkins
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×