前提
PHPのインストール済み
Docker環境でEC-Cubeを作成済み
Docker環境ではない場合、Mailcatcherをローカルで立ち上げれば大丈夫だと思います。
本編
インストール関係
ChromeDriverをインストールする
$ brew install chromedriver
Symfonyのインストール
公式サイトを参考に
$ curl -sS https://get.symfony.com/cli/installer | bash
これでもいけるらしい
$ brew install symfony-cli/tap/symfony-cli
Symfonyがインストールできない場合(Xcodeのバージョンが低い場合)
$ sudo rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install
sudo rmするとインストールしますか?ポップアップが出てくる。
全てのターミナルを閉じてから、ポップアップをクリックすればいける、、はず。
サーバを建てていく
Docker環境のMailcatcherを起動する
$ docker run --rm -p 1080:1080 -p 1025:1025 schickling/mailcatcher
ChromeDirverを起動する
$ chromedriver --url-base=/wd/hub
検証元が不明のエラーが出た場合
システム環境設定 > プライバシーとセキュリティー > セキュリティー > chromedreiverをこのまま開く
PHPサーバを立てる
$ php -S 127.0.0.1:8080
127.0.0.1:8080にアクセスして、EC-Cubeの画面が立ち上がったらOK
composer not install
が出た場合
$ composer install
$ symfony console eccube:install -n
再度PHPサーバを立てて表示されればOK
local.envの作成
codeception/_envs/local.yml
のファイルを作成する
今回はこのように設定した
modules:
config:
WebDriver:
host: 'localhost'
port: 9515
url: 'http://localhost:8080'
MailCatcher:
url: 'localhost'
port: 1080
テスト実行
試しにEA01TopCestのテストケースを実行する
2023/05/17 追記
↓おすすめはこちら↓
$ vendor/bin/codecept run acceptance --env chrome-headless,local --html report.html -g admin01 codeception/acceptance/EA01TopCest.php
↓これは画面が切り替わります。(あとうまくいかないことが多いです)
$ vendor/bin/codecept run acceptance --env chrome,local -g admin01 codeception/acceptance/EA01TopCest.php
テストが落ちるケース1
$ vendor/bin/codecept run acceptance --env chrome,local -g admin01 codeception/acceptance/EA01TopCest.php
[Facebook\WebDriver\Exception\SessionNotCreatedException] session not created: This version of ChromeDriver only supports Chrome version 113
Current browser version is 110.0.5481.177 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Chrome本体とChromeDriverのバージョンが不一致のエラー
Chromeの更新をしたら治るかもしれない。
どうしてもバージョンが合わない場合、Driverのモジュールを直でDLすると良いらしい。
No tests executed!が表示される場合
2023/05/17 追記
実行するファイルが存在しない場合はエラーがおきます。
それ以外では、↑にあるlocal.envの作成を忘れている場合があります。(1敗)
メールが飛ばない場合
.envファイル等に以下の設定を追加 (2023/5/24 追記)
MAILER_DSN=smtp://localhost:1025
バージョン不一致の場合
chromedriverのバージョンアップをお願いします。
error内容
[1698432118.565][WARNING]: This version of ChromeDriver has not been tested with Chrome version 118.
実行コマンド
brew upgrade chromedriver
背景
EC-CubeのE2Eテストを実行する機会があったので、作業手順をメモしたものになります。
参考にさせて頂いた記事(?)
https://github.com/EC-CUBE/ec-cube/pull/3048