Net なプロジェクトでも jenkins を使ってみた

11,403 views

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
11,403
On SlideShare
0
From Embeds
0
Number of Embeds
1,582
Actions
Shares
0
Downloads
29
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Net なプロジェクトでも jenkins を使ってみた

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

×