Posted at

LaravelプロジェクトをCircleCI2.0でUIテストまで行う


バージョン等

検証したアプリケーションのバージョンを記載しています。

名称
バージョン

Laravel
5.6.35

PHP
7.2.0


概要


  • Seleniumのように、自動でUIテストを行いたい

  • CI等でもUIテストを行いたい


手順


Github連携


  1. https://circleci.com/ でGithubアカウントでログイン後、 ADD_PROJECT でリポジトリを追加してください


  2. PullRequest等行うと自動でCIが実行されます。 (設定ファイルがなければ実行しません)



Project設定



  1. dusk をインストール

    $ composer install laravel/dusk
    


  2. /tests/Browser/ にテストケースを追加



  3. テストを実行

    $ php artisan dusk
    



CI設定


[LravelProject]/.circleci/config.yml


# PHP CircleCI 2.0 configuration file

version: 2
jobs:
build:
docker:
- image: circleci/php:7.1-jessie-node-browsers
environment:
APP_ENV: circleci
APP_DEBUG: true
DB_CONNECTION: sqlite

working_directory: ~/repo

steps:
- checkout

- run: sudo apt install -y libsqlite3-dev zlib1g-dev
- run: sudo composer self-update

- restore_cache:
keys:
- v1-dependencies-{{ checksum "composer.json" }}
- v1-dependencies-

- run: composer install -n --prefer-dist

- save_cache:
paths:
- ./vendor
key: v1-dependencies-{{ checksum "composer.json" }}

- run: touch database/database.sqlite

- run: php artisan migrate

- run:
name: Start Chrome Driver
command: ./vendor/laravel/dusk/bin/chromedriver-linux
background: true

- run:
name: Run Laravel Server
command: php artisan serve
background: true

- run: php artisan dusk



解説(一部だけ)


Chrome Driver の開始



config.yml

- run:

name: Start Chrome Driver
command: ./vendor/laravel/dusk/bin/chromedriver-linux
background: true


WebServerの開始



config.yml

- run:

name: Run Laravel Server
command: php artisan serve
background: true


テストの実行



config.yml

- run: php artisan dusk



最後に

あとはPushするだけ。

以上