EC-CUBEのプラグインをクロスプラットフォームで継続的にテストする

EC-CUBEは、システム要件が広いです
・PHP5.2~
・Windowsサーバー、Linuxサーバー
・PostgreSQL、MySQL

その他プラグインをインストール可能なバージョンがたくさん
2.12.0〜2.12.6
2.13.0~2.13.2
その他多言語版もあり。。

必然的に人力でのテストがとても大変。。
自分は基本MySQLでしかテストせず、怪しい時だけPostgreSQLを立ち上げてそこでもテストしますが非常にめんどくさい。。
というわけで自動化出来そうなところを自動化してみました

最終的には

Travis_CI_-_Free_Hosted_Continuous_Integration_Platform_for_the_Open_Source_Community

こんな感じで、必要条件のマトリクスを作ったテストが可能になります
・PHP5.4~5.6
・PostgreSQL、MySQL
・EC-CUBEの各バージョン(今のところ2.12.6と2.13.2)、ただし多言語版はなんか動かなかったのでやめました

1.テストを作る

Codeceptionを使います
プラグインを開発している環境で、Modern PHP Testing Framework “Codeception” を使って簡単なブラウザテストをする | のぶろぐ を参考に動作確認ができるテストを書きましょう

プラグインの内容にもよると思いますが、最初は「プラグインをインストールしても対象のページでシステムエラーが出ない」ぐらいの内容で構わないと思います

2. .travis.ymlを作成する

手元の環境でテストが動いたら、Travis CIを使ってマルチ環境でのテストが出来るようにします。
プライベートリポジトリの場合は、CircleCIMagnum CIを使えばいいと思いますが、基本は一緒なのでtravis.ymlで説明します

① PLUGIN_CODEを変更する

EC-CUBEにインストールされた時に、 downloads/plugin 以下に作成されるディレクトリ名です

②tests/_data/dump.sqlにSQLを書く

このプラグインを有効化にした後にSQL操作が必要な場合、そのSQLを書いておく
例えばパンくずプラグインの場合は、ブロックをレイアウトに配置する必要があるのでそのSQLを書いてあります

※プラグインを有効化するところまでは済んでいる状態なのでその後に必要なことのみ書いてください
※PosgreSQL、MySQLどちらでも動く標準化されたSQLを書く必要があります。分ける場合はここを変更してください

3. acceptance.suite.ymlに追記する

travisでは、ビルトインサーバーでテストするのでその環境を追記してください。

3. push

あとは、全部コミットしてpushするだけ!
※Travis CIの設定は事前にしておいてくださいね
Travis CIに入門してPHPプロジェクトのCI / 継続的デリバリ環境を整える | のぶろぐ

これだけでTravis CI上で、複数環境のテストが完了するはずです
プラグインのメンテに苦労している人、受け入れテストに苦労している人参考にしてみてください(ΦωΦ)

githubにリポジトリ公開してますのでこちらも参考にしてください
ECCUBE-Plugin-BreadcrumbList/tests at master · nobuhiko/ECCUBE-Plugin-BreadcrumbList

スポンサーリンク

シェアする

フォローする

コメントを残す

トップへ戻る