狠狠撸
Search
Submit Search
闯别苍办颈苍蝉て?行う并列テスト(公开用)
?
7 likes
?
4,437 views
Yamamoto Kazuhisa
1 of 52
Download now
Download to read offline
More Related Content
闯别苍办颈苍蝉て?行う并列テスト(公开用)
1.
Jenkinsで行う 並列テスト 岡山Ruby会議02 2013.07.06 山本 和久 13年7月10日水曜日
2.
自己紹介 ? 山本 和久 ?
岡山Ruby/Ruby on Rails勉強会 ? @kazuhisa1976 ? 株式会社リゾーム 13年7月10日水曜日
3.
RubyGemsパッケージ 13年7月10日水曜日
4.
need_label ? 必須項目にしるしを出力 13年7月10日水曜日
5.
13年7月10日水曜日
6.
13年7月10日水曜日
7.
hashed-jasper-rails ? jasper-reportsをRailsから使う 13年7月10日水曜日
8.
csv_combine ? 複数のCSVファイルをあたかも1つのフ ァイルのように扱う ? 行のダブリを考慮 13年7月10日水曜日
9.
ken_all ? 全国の郵便番号データをRailsで使う ? 半分ネタ 13年7月10日水曜日
10.
pg_index_where ? PostgreSQLのユニークインデックスで Whereを指定 ? acts_as_paranoidと併せて使うと良いよ 13年7月10日水曜日
11.
勤務先 13年7月10日水曜日
12.
勤務先 ? 株式会社リゾーム ? ショッピングセンターのコンサル ?
デベロッパーマネジメントシステム ? 顧客分析システム 13年7月10日水曜日
13.
BOND GATE ? SC?専門店向けの コミュニケーションウェア 13年7月10日水曜日
14.
私の役割 ? テストフレームワーク ? 技術検証 ?
インフラ(AWS,Chef) 13年7月10日水曜日
15.
テストの歴史 ? BGプロジェクト開始2011年1月 ? 2011年4月
私が入社 ? 2011年7月 ? RubyKaigi2011 ? いしきがたかくなった! ? 帰りの新幹線でテストフレームワーク を設定 13年7月10日水曜日
16.
テスト ? 2011年10月時点 ? rspec ?
109ファイル ? cucumber ? 9ファイル 13年7月10日水曜日
17.
ここで問題が http://www.?ickr.com/photos/morinkovo_fotky/4168850871 13年7月10日水曜日
18.
Slow Tests ? RSpec
+ Cucumberの実行だけで30分位 かかる 13年7月10日水曜日
19.
Parallel Tests 13年7月10日水曜日
20.
Slow Tests ? この時は一応解決した 13年7月10日水曜日
21.
Slow Tests再び ? 2012年3月 ?
Parallel Testでも遅くなってきた 13年7月10日水曜日
22.
Jenkinsの導入 ? 岡山Javaユーザー会の@zephiransasさん の影響でJenkinsを導入 13年7月10日水曜日
23.
Jenkinsとは? ? 継続的インテグレーション ? cronやタスクスケジューラと似てる ?
豊富なプラグイン ? Javaを知らなくても使える ? 豊富な通知(mail, growl) 13年7月10日水曜日
24.
インストール方法 ? Mac ? brew
install jenkins ? Other ? Glass?sh + jenkins.war 13年7月10日水曜日
25.
Jenkins 黎明期 ? 1台のマシン上で動かすJenkinsでParallel Testを実行 ?
自分のマシンがふさがらないので、そ れなりに便利だった 13年7月10日水曜日
26.
Parallel Testsでも遅い http://www.?ickr.com/photos/66643556@N06/6065807649 13年7月10日水曜日
27.
複数マシンでの並列実行 ? ビルドパイプラインの構築 ? テストの分割 ?
全てのテストが成功した時のみ リリース用ブランチにpush 13年7月10日水曜日
28.
ビルドパイプラインの構築 準備 spec 1 spec
2 spec 3 spec n ... 後処理 13年7月10日水曜日
29.
? Parameterized Trigger
Pluginと組み合わせる ? (デモ) ? GitのコミットIDの引き継ぎ ? Parameterized TriggerでPass-through Git Commit that was builtを指定 ビルドパイプラインの構築 13年7月10日水曜日
30.
テストの分割 ? 行数で平均して分散化 20 10 40 50 30 60 80 15 36 22 11 8 13年7月10日水曜日
31.
テストの分割 ? 行数で平均して分散化 20 10
40 5030 60 80 15 36 22 11 8 130 130 122 13年7月10日水曜日
32.
テストの分割 ? Jenkins用のrake taskを作成 ?
rake jenkins:rspec ? rake jenkins:cucumber export SPLIT=16 export OF=4 bundle exec rake jenkins:rspec 13年7月10日水曜日
33.
リリース用ブランチにpush ? Join Trigger ?
Parameterized Triggerで指定したJobが全て 成功した時に走らせたいJobを指定 ? テストが通ったものしかリリースできない 13年7月10日水曜日
34.
13年7月10日水曜日
35.
さらなる高速化http://www.?ickr.com/photos/wheat?elds/3938695154/ 13年7月10日水曜日
36.
コード量 ? Controller ? 125 ?
Model ? 304 ? View ? 1104 13年7月10日水曜日
37.
毎日増えるテスト 13年7月10日水曜日
38.
LinuxよりMac ? Capybara-webkitが高速 ? Mac
miniは省スペース 13年7月10日水曜日
39.
Git Pullを高速化 Github git pull
... 各テストはローカルからpullする git pull git pull git pull git pull The Internet Local Net 13年7月10日水曜日
40.
より便利にhttp://www.?ickr.com/photos/75905404@N00/7126147125/ 13年7月10日水曜日
41.
任意のブランチでテスト ? ビルドのパラメータ化を利用 13年7月10日水曜日
42.
任意のブランチでテスト ? rbenv or
rvm pluginと組み合わせれば任意の rubyバージョンでテストすることも可能 13年7月10日水曜日
43.
任意のブランチでテスト ? rbenv or
rvm pluginと組み合わせれば任意の rubyバージョンでテストすることも可能 おーい。おじさん使うよ! 13年7月10日水曜日
44.
テスト後にマージ develop feature-foo Github Jenkins
local dev feature-foofeature-foo feature-foodevelop 13年7月10日水曜日
45.
bundle update ? gemを取得する場所を指定 ?
bundle install --path vendor/bundle ? bundle update時のバッティングを防止 13年7月10日水曜日
46.
今後やりたいこと ? pull 方式のテスト spec
1 spec 2 spec 3 spec 4 spec 5 spec 6 spec 7 ... spec n 13年7月10日水曜日
47.
今後やりたいこと ? pull 方式のテスト spec
2 spec 3 spec 4 spec 5 spec 6 spec 7 ... spec n 13年7月10日水曜日
48.
今後やりたいこと ? pull 方式のテスト spec
2 spec 3 spec 4 spec 5 spec 6 spec 7 ... spec n 13年7月10日水曜日
49.
今後やりたいこと ? pull 方式のテスト spec
2 spec 3 spec 5 spec 6 spec 7 ... spec n 13年7月10日水曜日
50.
今後やりたいこと ? pull 方式のテスト spec
2 spec 3 spec 5 spec 6 spec 7 ... spec n 13年7月10日水曜日
51.
今後やりたいこと ? RubyGemsのミラーで高速化 ? 時々コケるテストのレスキュー ?
テストが混線した時結果が分かりにく い 13年7月10日水曜日
52.
おしまい 13年7月10日水曜日
Download