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

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