PHP
GitHub
laravel
CircleCI

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するだけ。

以上