【问题标题】:Continuous integration with Laravel package and Behat与 Laravel 包和 Behat 的持续集成
【发布时间】:2016-04-09 12:17:30
【问题描述】:

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

我将 Travis 用作 CI 服务,我想知道是否有特定的 .travis.yml 配置可以让为我的包创建的测试与新创建的 Laravel 应用程序一起运行。

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

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

【问题讨论】:

    标签: php laravel laravel-5 travis-ci behat


    【解决方案1】:

    我将与你分享我的 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 左右..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 2016-12-12
      • 1970-01-01
      • 2019-03-08
      • 2010-09-16
      • 1970-01-01
      相关资源
      最近更新 更多