Travis CIでWordPressテーマのテストとデプロイを自動化できるようにする 〜テスト編
前回の記事でTravis CIでWordPressテーマを自動でreleaseブランチにデプロイする方法を書きました。
今回はコードがWordPressのコーディング規約に沿っているかをテストできるようにします。
PHPCSとWordPress Coding Standarsの導入
ここではWordPressが規約通りにコーディングできているかどうかをテストする方法を紹介します。
WordPressのコーディング規約チェックにはPHPCSを使用します。PHPCS(PHPCodeSniffer)とは指定したコーディング規約に準拠しているかどうかをチェックしてくれるツールです。 そして指定するコーディング規約というのが<a href="https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards" target="blank">WordPress Coding StandardsというWordPressのコーディング規約です。
導入にはPHPCSとWordPress Coding Standardsのダウンロードが必要です。ダウンロード方法はいくつかありますが、今回はComposerでダウンロードします。Composerが導入済みの想定で解説しますので、未導入の方はググってもらえれば沢山情報が出てくるので、そちらを参照願います。
まずcomposer.jsonをファイルを作成して、下記の通りに記述します。
{
"require-dev": {
"squizlabs/php_codesniffer": "*",
"wp-coding-standards/wpcs": "*"
}
}次に下記のコマンドをたたくとcomposer.jsonに記述したパッケージがインストールされます。
composer installインストールが終わると、composer.lockとvendorというディレクトリが追加され、下記のようなディレクトリ構成になっていると思います。
(プロジェクトルート)/
├ composer.json
├ composer.lock
└ vendor/各ディレクトリの内容は以下です。
| 値 | 内容 |
|---|---|
| composer.json | インストールしたいパッケージの一覧の他、コマンドの設定などを記述する |
| composer.lock | composer.jsonでインストールしたいパッケージに必要なパッケージの一覧 |
| vendor | インストールしたパッケージが格納されたディレクトリ |
念のため下記のコマンドをたたいて、PHPCSがインストールされたかを確認してみましょう。
phpcs --versionバージョン情報が表示されたらインストールは完了です。
composer.jsonにPHPCSのコマンドを設定
次にcomposer.jsonにPHPCSを動かすためのコマンドを設定します。直接PHPCSコマンドをたたいても良いのですが、Composerに設定しておくと長いコマンドをたたかなくて良いので便利です。
先ほどのcomposer.jsonに下記を追加します。
"scripts": {
"test": [
"./vendor/bin/phpcs --config-set installed_paths `pwd -P`/vendor/wp-coding-standards/wpcs",
"./vendor/bin/phpcs -p -s -v -n . --standard=./phpcs.xml --extensions=php"
]
}3行目がWordPress Coding Standardsの指定、4行目がPHPCSを動かすためのコマンドです。
これで以下のコマンドからPHPCSを動かすことができます。
composer testTravis CI側の設定
最後にTravis CIにテストのコマンドを書きます。.travis.ymlに設定を記述します。デプロイ編の記事で紹介した.travis.ymlに追記しました。
language: php
php:
- '7'
branches:
only:
- master
cache:
directories:
- node_modules
- vendor
install:
- nvm install 8
before_script:
- npm install
- composer install
script:
- npm run build
- ls -la style.css
- composer test
deploy:
provider: script
script: bash ./bin/deploy.sh
skip_cleanup: true
on:
branch: master
php: 7
env:
global:
- GIT_COMMITTER_NAME=Githubのアカウント名
- GIT_COMMITTER_EMAIL=Githubで使っているメールアドレス
- GIT_AUTHOR_NAME=リポジトリのオーサーのアカウント名
- GIT_AUTHOR_EMAIL=リポジトリのオーサーのメールアドレス
- secure: "トークンの文字列"追記したのは13、20、25行目のComposerに関する記述です。
| 値 | 内容 |
|---|---|
| vendor | キャッシュさせたいディレクトリ |
| composer install | Composerのモジュールをインストール |
| composer test | テストを走らせる |
以上でTravis CIを使用したテストの設定が終了しました。これでmasterブランチにプッシュする度にテストが実行されます。
おまけ:自動整形を利用する
PHPCSを実行するとエラー個所を検出してくれますが、修正などはしてくれません。そこで自動修正を行ってくれるPHPCBFを使用しましょう。 PHPCBFとはPHP Code Beautifier and Fixerの略で指定したコーディング規約に基づいて整形を行ってくれるコマンドです。PHPCSをダウンロードするとPHPCBFも一緒に使えるようになります。
PHPCBFもcomposer.jsonに記述しておいて使用できるようにしておくと楽です。
"scripts": {
"phpcbf": [
"./vendor/bin/phpcbf -p -s -v -n . --standard=./phpcs.xml --extensions=php"
]
}