与 Laravel 包和 Behat 的持续集成

Continuous integration with Laravel package and Behat

我正在为 Laravel 开发一个包,它实际上需要整个 Laravel 应用程序来 运行 我用 Behat 编写的测试。

我正在使用 Travis 作为 CI 服务,我想知道是否有特定的 .travis.yml 配置可以让为我的包 运行 创建的测试使用新创建的 Laravel申请。

基本上我的包包含控制台命令的特征,如果不安装 Laravel 本身就无法测试。

我知道我可以通过在 .travis.yml 中设置 install 挂钩来安装新的 Laravel 应用程序,但是我不知道如何集成和 运行 我的使用应用程序进行测试。

我将与您分享我的 travis 配置文件(我正在使用 Laravel 5.1)。

我的文件适用于 PHPUnit,但只需将运行 PHPUnit 的行替换为您的 Behat 命令,其他一切都是完美的。

.travis.yml

language: php

php:
  - 5.5.9
  - 5.6
  - 7.0
  - hhvm

matrix:
    allow_failures:
        - php: hhvm

before_script:
- cp .env.travis .env
- mysql -e 'create database homestead;'
- composer self-update
- composer install --prefer-source --no-interaction --dev
- php artisan migrate
- php artisan db:seed

script: vendor/bin/phpunit

您还必须包括 .env.travis,示例文件如下所示:

APP_ENV=testing
APP_DEBUG=true
APP_KEY=xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX

DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=sync

你当然可以使用特定的 DB_CONNECTION ,它可能在内存中与 sqlite 一起运行..