【WordPress連載記事】wordpressのテストをcodeceptionとwordpress用モジュールで自動化する 第一回

みなさんこんにちは個別指導塾コミット塾長、AWESOMEの開発担当の船津です。
今回からWordPressのブラウザテスト自動化について書いていこうと思います。

今回利用するのはcodeception、wi-browser, vccwです。

テスト本体

WordPress用のモジュール

WordPressの仮想環境です。最初からphpの開発環境が整っているのでおすすめです。いつもお世話になってます。多謝。

想定している状況

  • ブラウザテストを書きたい
  • 複雑に絡み合ったシステムの中で、お客様、ユーザが実際に想定される操作をした際に正しい結果が出力されているか確認したい
  • プラグイン開発をしている
  • 外部APIを使ったりしていて、自分の書いたコードのユニットテストだけでは不安

仮想環境の構築

vccwを使う前提でいきます。
インストールについては公式サイトをご覧ください。私はmac上に環境を作っています。
ここで抑えておくべきはデフォルト環境に関する以下の情報です。

Default user
Username: admin
Password: admin
MySQL
MySQL Host: 127.0.0.1
Username: wordpress or root
Password: wordpress
Port: 3306

codeceptionのインストール

公式を見ながら進めていきます。

インストール

vccwのあるフォルダで…
vagrant up
vagrant ssh
cd /vagrant/wordpress/
composer require codeception/codeception --dev

次に、公式ではcomposer require lucatume/wp-browser --devを実行するようにと書いてありますが、動かなかったので代わりにcomposer.jsonに以下のように記述します。

composer updateを実行してwp-browserをインストールします。

ここまで上手くいっていれば次のコマンドを実行して基本の環境を作りましょう。

wpcept bootstrap

これでtestsフォルダが出来ました。ここに基本設定などを書いていきます。
今回利用するのはacceptance testです。

vendor/bin/wpcept generate:cest acceptance テストクラス名を実行してコードを生成します。

tests/acceptance/フォルダに新しいテストファイルが出来たと思います。

wordpress用のセッティング

WordPress用のセッティングを行います。
tests/acceptance.suite.ymlを編集します。

こんな感じに書きます。wp-cliを使ったテストなども可能です。

とりあえずvendor/bin/wpcept run acceptanceを実行してacceptanceテストを行ってみましょう。
まだ何もないので以下のようにテストが通るはずです、

WordPress用のメソッドを使ってみよう

ここまで設定できていれば、wordpress用のメソッドが使えるようになっているはずです。

tests/acceptance/SampleTestCest.phpを以下のように変更しましょう

これでテストが通ります。このようにプラグインが有効化されているのが確認できます。
【WordPress連載記事】wordpressのテストをcodeceptionとwordpress用モジュールで自動化する 第一回

データベースの状態自体が変わってしまうので、データベースをいつも初期状態にしたい場合などは、  
– WPLoader
– WPDb
のようなモジュールを使う必要があります。

今回はここまで

WordPressはテーマを作るだけの場合は、見た目がしっかりしていればOKだったりするのですが、プラグインを作る際はしっかりとテストを書いてチェックしていきたいですね。
頑張りましょう。

Instagram Feed

Load More

Instagram

専務取締役

funatsukeisuke

WEBと教育を組み合わせて何かおもしろいことをやってやろうと画策しています。AWESOMEでは開発を担当、個別指導塾コミットでは塾長と2足の草鞋を履きながら日々勉強しています。

他の投稿を見る →