1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC-CubeのE2Eテストを実行する

Last updated at Posted at 2023-05-15

前提

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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?