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.

WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ

15,538 views

Published on

WordPressプラグインをJenkinsを使って開発してみるとどうなるかの検証LT
※実際のLTにかなり補足つけたスライドになります。

Published in: Technology

WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ

  1. 1. WordPressプラグイン開発の めんどうな作業は執事にお任せ 瀬戸 貴弘 2015年12月19日 LT
  2. 2. 瀬戸 貴弘 Twitter WordPress暦: 2.6 からブログで使い始めました。 瀬戸 貴弘 (せと たかひろ) :@as_chachamaru Facebook :as.chachamaru WordCamp Kansai 2014 副実行委員長、スピーカー。
  3. 3. 開発・テスト・修正 開発・テスト・修正 ▼ ▼ 【リリース】【リリース】 開発・テスト(ビルド)・修正の繰り返し プラグイン開発
  4. 4. テスト(ビルド)などプログラム以外の作業が多い
  5. 5. ということで今回、執事を雇いました。 手伝ってください
  6. 6. ご紹介します。Jenkinsさんです。 Jenkinsと申します。 よろしくお願いします。
  7. 7. Jenkinsさんは非常に優秀ですが・・・
  8. 8. サーバエラーなど危ない行動には厳しいです。
  9. 9. 今回は、VCCWの中で働いてもらいます。 VCCW ※VCCWへのJenkinsのインストール方法は割愛します。
  10. 10. ※VCCWへのJenkinsのインストール方法は割愛します。 Jenkinsさんは家の中の道具などを使ってもらっても 構いません。(shellなどのコマンド実行できる) VCCW
  11. 11. PHPUnitさん 今回の共同作業者のご紹介。 テストやカバレッジ 分析などします。 コード規約に準拠し ているか調べます。 phpcsさん PHPコードの問題点 などを調べます。 phpmdさん
  12. 12. 共同作業者への依頼はJenkinsさんを通して行う 仕事を指示 依頼 テスト結果 レポート報告
  13. 13. PHPUnitさんとのやりとり ※例は phing を通してます。 phpunit.xml coverage.xml html形式カバレッジ結果 テストとカバレッジ分析 してください
  14. 14. phpcsさんとのやりとり ※例は phing を通してます。 phpcs.xml WordPress-Core準拠か チェックしてください
  15. 15. phpmdさんとのやりとり ※例は phing を通してます。 phpmd.xml PHPコードに問題点がないか チェックしてください
  16. 16. さっそく仕事してもらいます。 プラグインのテスト結果のレポートを つくってください。 今回のJenkinsさんのお仕事です。
  17. 17. Jenkinsさんへの仕事(job)指示や、Jenkinsさんか らのレポート報告などはブラウザを通して行います。
  18. 18. 具体的な指示をしますね 今回のJenkinsさんのお仕事です。
  19. 19. Jenkinsさんへの仕事(job)は手動実行や、定期実 行、Subversionなどのバージョン管理と連動させて 実行させることも可能です。
  20. 20. Jenkinsさんへに具体的にやってほしい内容を指示し ていきます。
  21. 21. 今回は、共同作業者への依頼と、その共同作業者から の結果をレポートとして作成してもらいます。 PHPunitさんへの依頼 phpcsさんへの依頼 phpmdさんへの依頼 報告レポート作成
  22. 22. 共同作業者への依頼。今回はphingを通してまとめて 依頼しています。各それぞれ直接依頼も当然OK!
  23. 23. [補足] Phing はプラグイン入れれば設定ファイルを読 み込ませるだけで実行できます。
  24. 24. PHPUnitさんからのテスト結果をもらって レポートを作成します。 phpunit.xml テストとカバレッジ分析 してください
  25. 25. PHPUnitさんからのカバレッジ結果をもらって レポートを作成します。 coverage.xml テストとカバレッジ分析 してください
  26. 26. phpcsさんからの準拠チェック結果をもらって レポートを作成します。 phpcs.xml WordPress-Core準拠か チェックしてください
  27. 27. phpmdさんからの問題点チェック結果をもらって レポートを作成します。 phpmd.xml PHPコードに問題点がないか チェックしてください
  28. 28. 仕事内容はわかりましたか? では、さっそく お仕事してみてください。
  29. 29. 手動実行はサイドメニューの「ビルド実行」で できます。
  30. 30. まずは、PHPUnitさんからの テスト結果を レポートしてください。
  31. 31. テスト結果は今回は全て成功しています。 (テスト結果リンクをクリックすると詳細へ)
  32. 32.       テスト結果は、テストケース単位まで細かく      レポートしております。
  33. 33.      テスト結果に失敗がある場合は、一覧にまとめます。      クリックすると詳細がみれます。
  34. 34.       PHPUnit様からいただいた原因を       レポートしております。 すぐに修正しなさい!
  35. 35.      テスト結果を時系列でみることもできます。          テスト数の増減や改善などを把握しやすくなります。
  36. 36. 次に、PHPUnitさんからの カバレッジ結果を レポートしてください。
  37. 37. カバレッジは全コード(メソッド)のうち、       どのぐらいの割合をテストしているかみます。
  38. 38. カバレッジは品質の指標になりますが、100% にする必要はありません。 本来テストしたい箇所をテストしているか詳細を みて分析します。
  39. 39. 共同作業者さんが作成したファイルを指定した ところに置いてもらうとワークスペースから参 照したりダウンロードできます。
  40. 40. PHPUnitさんが作成したカバレッジレポート (html形式)も非常に参考になります。
  41. 41. コードに色づけしてテストで通過した箇所が分か ります。赤い箇所はテストされてないので重要な 箇所のテスト漏れがないか確認してください。
  42. 42. phpcsさんからの WordPress-Core準拠 結果を レポートしてください。
  43. 43. Checkstyle でコーディング規約へのチェック結果 を報告しています。
  44. 44. コーディング規約に従ってないファイルと行番号を 一覧としてまとめていますので確認してください。
  45. 45. コーディング規約に従ってない行には色がつきます ので詳細が確認できます。
  46. 46. phpmdさんからの PHPコード問題箇所の結果を レポートしてください。
  47. 47. PMDでPHPコードの問題箇所を報告しています。
  48. 48. バグが起こりそうな箇所を一覧にしています。 例えば変数定義しているのに使ってないなどです。
  49. 49. 問題点と思われる行には色がつきますので詳細が 確認できます。
  50. 50. まとめ テストの自動化 Jenkinsさんを使わなくても、PHPUnitやphpcsそしてphpmd などはコマンドで直接できます。Jenkinさんを使うことで 仕事(job)を登録し再利用しやすくなります。 また、SubversionやGitと連携できるのでコミットしたタイミ ングで自動チェックがかかり、レポートをメールで受け取る など可能です。
  51. 51. まとめ Jenkinsさんを使うと、PHPUnitやphpcsそしてphpmd などの結果を見やすいレポートにしてくれます。 コマンドラインで叩いて実行させるとその時点の結果だけで問 題点を把握してしまいがちですが、Jenkinsさんのレポートは過 去の結果などをまとめて時系列レポートもあります。 時系列をみることで、同じ失敗を繰り返していないかや改善さ れているかなど品質向上を客観的に把握しやすくなります。 品質向上を客観的に
  52. 52. まとめ Jenkinsさんはブラウザ上で仕事(job)の実行や結果報告の確認 ができます。 各自の開発環境と別にJenkinsさんが動く環境(Gitなどのバー ジョン管理と連動して常に最新のファイルでテストなどを行え る環境など)を作れば、デザイナーやディレクターなど誰もが その時点の品質を確認しやすくなります。 Jenkinsさんは結果をメールなどで教えてくれるのでメールで問 題報告があればブラウザで詳細確認などの運用ができます。 CI(継続的インテグレーション)で品質向上
  53. 53. まとめ Jenkinsは400以上の プラグインがありカスタマイズ することで強力なツールに! お勧めだよ!
  54. 54. ありがとうございました。

×