Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

12,543 views

Published on

Published in: Technology
  • Login to see the comments

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 />

×