2016-04-09 9 views
0

Ich entwickle ein Paket für Laravel, das eigentlich die gesamte Laravel-Anwendung benötigt, um die Tests auszuführen, die ich mit Behat geschrieben habe.Kontinuierliche Integration mit Laravel-Paket und Behat

Ich verwende Travis als CI-Dienst und frage mich, ob es eine spezifische .travis.yml Konfiguration gibt, damit die für mein Paket erstellten Tests mit einer neu erstellten Laravel-Anwendung ausgeführt werden können.

Grundsätzlich besteht mein Paket aus einer Eigenschaft für Konsolenbefehle, die nicht getestet werden können, ohne Laravel selbst zu installieren.

Ich weiß, dass ich eine neue Laravel-Anwendung installieren kann, indem ich den install Haken in .travis.yml einstelle, aber dann weiß ich nicht, wie man meine Tests mit der APP integriert und durchführt.

Antwort

2

Ich werde mit Ihnen meine Travis-Konfigurationsdatei teilen (ich benutze Laravel 5.1).

Meine Datei funktioniert mit PHPUnit aber ersetzen Sie einfach die Zeile, die PHPUnit mit Ihrem Behat-Befehl ausführt, alles andere ist perfekt.

.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 

Sie müssen umfassen .env.travis auch, eine Beispieldatei würde wie folgt aussehen:

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 

Sie können natürlich bestimmte verwenden DB_CONNECTION das läuft wahrscheinlich mit sqlite im Speicher oder so ..