net なプロジェクトでも jenkins を使ってみた
TRANSCRIPT
![Page 1: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/1.jpg)
.NET なプロジェクトでも Jenkins を使ってみた
第 1 回大阪 Jenkins 勉強会2011/09/22 お だ
![Page 2: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/2.jpg)
織田 信亮 ( おだ しんすけ )開発者してますSQLWorld 代表http://d.hatena.ne.jp/odashinsuke/@shinsukeoda
![Page 3: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/3.jpg)
注意書き
2~3年前のお話しです当時は Hudson でした
![Page 4: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/4.jpg)
今日お話しする内容
Jenkins / CI体験談今 .NET のプロジェクトで使うなら
![Page 5: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/5.jpg)
Jenkins って何?
CI(Continuous Integration) サーバーContinuous Integration って何?
堅苦しい定義は色々あると思いますが…
短い間隔で繰り返しビルド する!
![Page 6: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/6.jpg)
CI すると何が嬉しい?
ビルドの自動化!最新ソースを取得するとビルドが通らない朝一最新取ったら、エラーになる orz
リリース準備でも開発端末依存している~さんの端末でビルドしないとダメ!
ユニットテストがあると…テストの自動化 / 結果レポート定期的なテストの実行により、コードが守られる
![Page 7: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/7.jpg)
CI すると何が嬉しい?
ビルドの自動化!最新ソースを取得するとビルドが通らない朝一最新取ったら、エラーになる orz
リリース準備でも開発端末依存している~さんの端末でビルドしないとダメ!
ユニットテストがあると…テストの自動化 / 結果レポート定期的なテストの実行により、コードが守られる
![Page 8: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/8.jpg)
.NET で CI するには…
TFS (Team Foundation Server)ソース管理、 CI 、プロジェクト管理、レポート、テスト管理 等 盛り沢山!有償 ( 最新版は大幅値下げも CAL は必要 )
CCNET (CruiseControl.NET)http://www.cruisecontrolnet.org/projects/ccnet
無償で使える OSS の CI設定が .xml ベースで大変… (v1.4 当時 )
![Page 9: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/9.jpg)
Jenkins は?
無償すぐ使える設定が GUI ベースで使いやすい
GUI さいこー!
![Page 10: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/10.jpg)
今日お話しする内容
Jenkins / CI体験談今 .NET のプロジェクトで使うなら
![Page 11: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/11.jpg)
.NET の開発環境
Visual Studio を中心に色々利用していましたユニットテスト / カバレッジ / コード解析…
でもお高いんでしょ?
![Page 12: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/12.jpg)
.NET のお手軽 ( 無償 ) 開発環境の例
IDEVisual Studio (Express Edition)
ユニットテストNUnit/Moles
カバレッジPartCover
コード解析FxCop ( 最近は Windows SDK に同梱 )
![Page 13: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/13.jpg)
Jenkins サーバーへの事前準備
必要なコンポーネントのインストール.NET Framework利用している 3rd コンポーネントライセンスは要確認!端末単位なのか開発者単位なのか?
その他依存しているコンポーネントSilverlight SDK とか
テスト / レポート等に使うコンポーネントNUnit/PartCover/FxCop … etc
![Page 14: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/14.jpg)
プロジェクトの構成
ビルドMSBuild (Visual Studio)
ユニットテストNUnit
カバレッジPartCover
コード解析無し
![Page 15: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/15.jpg)
どの プラグイン を使ってた?
ビルドMSBuild Plugin
テストNUnit Plugin
カバレッジHTML Publisher Plugin
![Page 16: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/16.jpg)
当時困ったこと (NUnit 編 )
プラグインが パラメタライズドテスト に対応していなかったレポートに デスクリプション を表示してくれない
JUnit には無いからかな?
![Page 17: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/17.jpg)
当時困ったこと (PartCover 編 )
プラグインが無い!結果ファイル (.xml) を自前で HTML に変換し、 HTML Publisher Plugin で表示
![Page 18: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/18.jpg)
当時困ったこと (Silverlight のテスト )
Silverlight 2 の頃ですTestRunner が貧弱!
.html ファイルをブラウザで開くと、テストが動きだし、ブラウザに結果を表示する形式PowerShell で IE 立ち上げて、テストが終わるまで待機。その後結果の部分だけ抽出し、別の HTML ファイルに保存
![Page 19: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/19.jpg)
Silverlight のテスト .html のイメージ
![Page 20: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/20.jpg)
Silverlight のテスト .html のイメージ
![Page 21: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/21.jpg)
今日お話しする内容
Jenkins / CI体験談今 .NET のプロジェクトで使うなら
![Page 22: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/22.jpg)
NUnit プラグイン
パラメタライズドテスト に対応しているリリースノートにそれっぽい事が書いてる
デスクリプション を表示してくれないこれは対応していない
![Page 23: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/23.jpg)
PartCover プラグイン
相変わらず無いです結果ファイルを Emma プラグインが 読める形式に変換して、 Emma プラグインで表示するのが良いのかも。
MSTest(Visual Studio 付属 ) のカバレッジツールもそういう風に対応している
![Page 24: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/24.jpg)
Violations プラグイン
FxCop の結果を表示出来ますFxCop は Visual Studio が無くても使えます!
![Page 25: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/25.jpg)
Silverlight のテスト
StatLight という便利な TestRunner が出てきました
テスト結果が、 .xml で出力されます!http://statlight.codeplex.com/
Jenkins でも動くそうですhttp://nosuchblogger.com/post/146/silverlight-unit-test-applications-and-ci
![Page 26: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/26.jpg)
選ばれし者の場合…
お高い MSDN 持ってるぜーな方は…Jenkins サーバーに VS を突っ込むと色々と楽出来るかも…MSTest カバレッジ や FxCop もコマンド要らず
MSTest プラグインPex & Moles も使えるんじゃね?
Emma プラグインMSTest カバレッジ結果を出す
Violations プラグインFxCop の結果表示
![Page 27: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/27.jpg)
今日お話しする内容
Jenkins / CI体験談今 .NET のプロジェクトで使うならおまけ
![Page 28: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/28.jpg)
CUI さいこー
自動化するためには、 GUI ベースだと中々難しいGUI ベースで設定ファイルが作成出来る かつ CUI で実行出来るツールが便利!PartCover 、 FxCop 、 Sandcastle Help File Builder はそういった使い方が出来ます
![Page 29: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/29.jpg)
MSBuild ファイル (.proj) を別に用意する
Jenkins で テストやカバレッジ、コード解析のコマンドを叩く設定を書いてると、Jenkins が無いと何も出来なくなる!
CI サーバーに依存している状態!コミットしないと何もわからない!
![Page 30: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/30.jpg)
MSBuild ファイル (.proj) を別に用意する
レポート用やリリース用等、別途 MSBuild ファイルを作成しておくと便利
リポジトリから最新取って、タグつけて、ビルド、テスト、納品物の圧縮 等も、 MSBuild にまとめて記述出来たりします
![Page 31: Net なプロジェクトでも jenkins を使ってみた](https://reader036.vdocuments.net/reader036/viewer/2022081505/5565f8e4d8b42a2a4d8b48af/html5/thumbnails/31.jpg)
まとめ
.NET のプロジェクトでも十分使えますTFS を使っている方は無理に乗り換えなくても良いですGUI / CUI 両方使えるツールがさいこーMSBuild は自動化の第一歩
CI サーバーが無くても自動化出来ます