EC-CUBE4の環境構築続きです。
【EC-CUBE4】①EC-CUBE本体の開発環境を整える(インストール編)
【EC-CUBE4】②EC-CUBE本体の開発環境を整える(GitHub Flow編)
[【EC-CUBE4】③EC-CUBE本体の開発環境を整える(MYSQL,MailCatcher編)]
(https://qiita.com/junpeko5/items/3316b654b4b80ee59376)
[【EC-CUBE4】④EC-CUBE本体の開発環境を整える(Postgres,MailCatcher編)]
(https://qiita.com/junpeko5/items/ef572490c44da90eac59)
【EC-CUBE4】⑤EC-CUBE本体の開発環境を整える(Xdebug、PhpStorm編)
【EC-CUBE4】⑥EC-CUBE本体の開発環境を整える(Codeception編)
前提条件
- Mac
- .phpenvでphp7.2.8がインストール済み
- EC-CUBE4がローカル環境にインストール済み(【EC-CUBE4】①EC-CUBE本体の開発環境を整える(インストール編)が終わっていること)
- Postgres、Mailcatcherがローカル環境で利用できること(【EC-CUBE4】④EC-CUBE本体の開発環境を整える(Postgres,MailCatcher編)が終わっていること)
- 【EC-CUBE4】⑤EC-CUBE本体の開発環境を整える(Xdebug、PhpStorm編)が終わっていること。
今回、DBはPostgresがローカル環境で動作している状態でテストを行います。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
59ca43ad1f56 schickling/mailcatcher "mailcatcher --no-qu…" 13 hours ago Up 13 hours 0.0.0.0:1025->1025/tcp, 0.0.0.0:1080->1080/tcp docker-postgres_mailcatcher_1
92fdda3109f5 postgres:10.9 "docker-entrypoint.s…" 13 hours ago Up 13 hours 0.0.0.0:5432->5432/tcp postgres_container
PHPUnitの実行
テストの実行は以下のコマンドです。
$ cd <EC-CUBEがインストールされているディレクトリ>
$ vendor/bin/phpunit
tests以下の全てのテストを実行します。
ファイルを指定して実行する
特定のファイルを実行したい場合は、ファイルのパスを指定します。
$ vendor/bin/phpunit tests/Eccube/Tests/Service/PurchaseFlow/Processor/StockReduceProcessorTest.php
メソッドを指定して実行する
特定のメソッドを実行したい場合は--filter
オプションを利用し、正規表現で表します。
$ vendor/bin/phpunit --filter "/(::testRollback)( .*)?$/" tests/Eccube/Tests/Service/PurchaseFlow/Processor/StockReduceProcessorTest.php
PhpStormで実行する
PhpStormで実行すると、かなり快適にテストが実行できるようになります。
メソッドの左側にある実行マークを押すと下図のようになり、テストの実行をかんたんに行うことができます。
Xdebugでテストコードを追うことも可能です。
参考
http://doc4.ec-cube.net/plugin_test
https://phpunit.readthedocs.io/ja/latest/