5
7

More than 5 years have passed since last update.

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

Posted at

バージョン等

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

名称 バージョン
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するだけ。

以上

5
7
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
5
7