3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel5.4 に codeception2.3.3を導入する

Last updated at Posted at 2017-06-15

Laravelのプロジェクトでテストコードを書くことになり、codeceptionを利用することにしたので、導入までのメモ書きです。

前提

ローカル環境は以下です。

  • PHP7
  • Laravel5.4
  • MySQL5.7.18
  • composer1.4.1

codeception

Laravelのルートでインストールします。

cd /path/to/LaravelProject
composer require codeception/codeception --dev

codeceptionのセットアップをします。

composer exec codecept bootstrap

とりあえずテストを走らせます。

composer exec codecept run

↑こちらのコマンドではエラーになる、、、以下エラー。

Script codecept handling the __exec_command event returned with error code 1

なので直接実行します。

/path/to/LaravelProject/vendor/bin/codecept run

まだ何もテストを書いていないので、動作確認のみです。

MySQL

MySQLにログインしてテスト用DBを作成します。

mysql -u root -p
CREATE DATABASE {DBNAME} CHARACTER SET utf8mb4;

Laravel

テスト用のdotenvを用意します。

cd /path/to/LaravelProject
cp .env .env.testing
vi .env.testing

以下に書き換えます。

APP_ENV=testing
APP_KEY={YOUR_KEY}

DB_CONNECTION=mysql
DB_HOST={YOUR_HOST}
DB_PORT=3306
DB_DATABASE={YOUR_DBNAME}
DB_USERNAME={YOUR_USER}
DB_PASSWORD={YOUR_PASSWORD}

ここで自分は、テスト用DBに開発用DBの内容をdumpしました。

mysqldump -uroot -p {MY_DBNAME} > {MY_DBNAME}.dump
mysql -uroot -p {MY_TESTING_DBNAME} < {MY_DBNAME}.dump

ymlの編集

/path/to/LaravelProject/tests/ にymlが出来上がっているので編集します。
unitとfunctionalしかいじらなかったので、受入テストのテストコードを実施する場合は別途対応する必要があります。

  • unit.suite.yml
# Codeception Test Suite Configuration
#
# Suite for unit or integration tests.

actor: UnitTester
modules:
    enabled:
        - Asserts
        - \Helper\Unit
        - Laravel5:
            part: ORM
            environment_file: .env.testing
            run_database_migrations: true 
  • functional.suite.yml
# Codeception Test Suite Configuration
#
# Suite for functional tests
# Emulate web requests and make application process them
# Include one of framework modules (Symfony2, Yii2, Laravel5) to use it
# Remove this suite if you don't use frameworks

actor: FunctionalTester
modules:
    enabled:
        - Laravel5:
            environment_file: .env.testing
            run_database_migrations: true
        - \Helper\Functional

これであとはテストコードを書くだけです。
以下にテストコード作成の参考記事を記載しております。

テストコード作成の参考記事

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?