Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hudson for Perl Project
Search
Kentaro Kuribayashi
November 20, 2010
Technology
1
250
Hudson for Perl Project
Kentaro Kuribayashi
November 20, 2010
Tweet
Share
More Decks by Kentaro Kuribayashi
See All by Kentaro Kuribayashi
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
170
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
180
「始め方」の始め方 / How to Start Starting Things
kentaro
5
770
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
1k
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
420
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
7
4.7k
組織の生産性を高める意思決定の構造と方法 / How to do make decision rapidly and effectively
kentaro
38
21k
キャリアを時間・空間軸で考える / Thinking about your career from both time and space viewpoints
kentaro
15
16k
WEB+DB PRESSで特集記事を書く方法 / How to Become an Author of WEB+DB PRESS
kentaro
7
1.4k
Other Decks in Technology
See All in Technology
Tricentisにおけるテスト自動化へのAI活用ご紹介/20240910Shunsuke Katakura
shift_evolve
0
180
四国クラウドお遍路 2024 in 高知 エンディング
yukataoka
0
190
20240911_New_Relicダッシュボード活用例
speakerdeckfk
0
100
自作Cコンパイラ 8時間の奮闘
soukouki
0
750
事前準備が肝!AI活用のための業務改革
layerx
PRO
1
250
社内の学びの場・コミュニティ形成とエンジニア同士のリレーションシップ構築/devreljapan2024
nishiuma
3
240
Road to Single Activity
yurihondo
1
200
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
120
Optuna: a Black-Box Optimization Framework
pfn
PRO
1
110
四国クラウドお遍路 2024 in 高知 オープニング
yukataoka
0
190
プロダクトエンジニアを支えるための開発生産性向上施策
tsukakei
0
140
効果的なオンコール対応と障害対応
ryuichi1208
5
2.7k
Featured
See All Featured
Optimizing for Happiness
mojombo
375
69k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
227
52k
Fantastic passwords and where to find them - at NoRuKo
philnash
48
2.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
230
130k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
What the flash - Photography Introduction
edds
67
11k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
89
16k
Debugging Ruby Performance
tmm1
72
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
43
2k
Rails Girls Zürich Keynote
gr2m
93
13k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
Building Applications with DynamoDB
mza
90
6k
Transcript
HudsonでPerlプロジェクトの継 続テスト (株)はてな 栗林健太郎 Kansai.pm #13 (2010/11/20)
自己紹介 •栗林健太郎 •id:antipop •@kentaro •Perler / Emacser
自己紹介 •(株)はてな勤務 •アプリケーションエンジニア ◦はてなダイアリー ◦新サービス ◦etc. • 文化系プログラマ担当
自己紹介 •ポリコムをPerlから動かしたり ◦ 「PolycomをPerlから操作する」 •Acme::MorningMusumeの久々の更新 に向けてアップを開始したり ◦「モーニング娘。9期メンバーオーディ ション」
自己紹介 •天龍寺にいます
アジェンダ •継続テスト環境の必要性 •Hudsonを使おう ◦Hudsonの導入 ◦テスト実行方法 ◦Tips •まとめ
テストできてる? •一点の曇りもなく素晴しいテストを書く ぞ!!1 •開発が進むにつれて: ◦仕様追加などで、テストが通らない、 あるいはそもそもテストがない機能が 増えてくる ◦破滅……
なぜそうなるか? •そりゃ、テストを書く、テストを通してから コミットするってのは前提だけど…… •個人のやる気だけでやると破綻 •自動的に、誰からでも見えるようにテス トが実行される必要性
テストの自動化 •個人は普段のサイクルで開発 ◦開発→テスト→コミット •あとは自動的にテストが勝手に行われ る •さらに、ツールが表示する結果がビジュ アルで美しいと、それを乱したくないとい う気持ちが働く
テストツールの要件 •Perlプロジェクトのテストに使える •導入が簡単 •テスト実行のタイミングを柔軟に設定で きる •結果の通知方法を柔軟に設定できる •テスト結果の表示がビジュアルできれい
Hudson
Hudson •Java製のCI(Continuous Integration)環 境 •インストール、設定が簡単 •柔軟な設定が可能 •豊富な拡張機能
Hudson •実行タイミングいろいろ ◦cronぽいスケジューラ ◦SCMをポーリング ◦コミットフックで通知
Perlから使うには? •シェルコマンドを実行できる ◦proveすればいい •JUnit形式で結果を吐いておけば、テス ト結果を集積できる •具体的な設定は後述
Perl + Hudsonを試してみる •SCMはgit •普通のPerlプロジェクト ◦proveでテスト実行
Hudsonインストール・起動 •$ wget http://hudson-ci. org/latest/hudson.war •$ java -jar hudson.war •http://localhost:8080/にアクセス
Gitプラグイン導入 •「Hudsonの管理」 → 「プラグインの管 理」にアクセス •「利用可能」タブの中のGitプラグインに チェックを入れて、インストール
プロジェクトの追加
プロジェクトの概要
Gitリポジトリの設定
テストのスケジューリング
テスト実行のしかた
テスト結果の集計
テストの実行 •とりあえず実行するには「ビルド実行」を クリック • 定期実行するには、前述の「設定」→ 「ビルド・トリガ」 •API経由でビルドをキックすることもでき ます
コミットフック •Gitリポジトリへのpushをトリガにテストを 実行 ◦SCMのポーリングよりリアルタイム •特定のURLにリクエストを送るだけ ◦ http://${hudson}/job/${project}/build
REST API •新規プロジェクトの作成、既存ジョブか らのコピー •登録されているジョブの情報を取得 •プロジェクトに関するビルド一覧 •それぞれのビルド詳細 •ビルドの実行 •Hudsonサーバのリスタート
hudson-cli •Hudsonサーバ/プロジェクト/ジョブに関 する様々な操作 •Groovyスクリプト/Groovyシェルで Hudsonサーバの内部状態を操作
テスト結果を受け取る •メール •IRC
テスト結果を受け取る •Hudson Tracker ◦http://hudsontracker.sourceforge. net/
テスト結果の集計
安全なテスト実行ために •Test::mysqld ◦テスト実行時にDB/table作成 ◦テストデータのロード •DBIx::RewriteDSN ◦確実に、テスト用DBにアクセスするよ うに
Hudsonを実運用する •各OS用のパッケージが用意されていま す。 •CenoOSでのやり方についてはブログ に書いた ◦http://d.hatena.ne. jp/antipop/20101119/1290180195
まとめ •Hudsonで継続テスト環境を作ろう ◦誰からでもわかる可視化重要 ◦導入はとても簡単 •テスト結果を確実に受け取れるようにし よう •安全なテスト実行ができるようにしよう
ご静聴ありがとうございました。 質問がありましたらお気軽に!!1