如何使用Travis CI测试laravel 5.2项目

PSN*_*PSN 2 php database travis-ci laravel-5.2

我在Laravel 5.2做了一个项目,它的源代码是在github上部署在这里.我在使用PHPUnit测试项目并与Travis-CI集成时遇到了麻烦.

这是我的Travis-CI配置文件:

language: php

php:
  - 5.6

before_script:
  - cp .env.travis .env
  - mysql -e 'create database homestead_test;'
  - composer self-update
  - composer install --no-interaction
  - php artisan key:generate

script:
  - vendor/bin/phpunit
Run Code Online (Sandbox Code Playgroud)

这是我的PHPUnit.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="bootstrap/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory suffix="Test.php">./tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">./app</directory>
            <exclude>
                <file>./app/Http/routes.php</file>
            </exclude>
        </whitelist>
    </filter>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    </php>
</phpunit>
Run Code Online (Sandbox Code Playgroud)

其他文件可以在我的存储库中看到.如果您需要任何说明,请在下面评论.

我的travis Build可以在这里看到.

这是我在Travis构建中遇到的错误:

PHP Warning:  require(/home/travis/build/TheOpenBlog/TheOpenBlog/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /home/travis/build/TheOpenBlog/TheOpenBlog/bootstrap/autoload.php on line 17
Run Code Online (Sandbox Code Playgroud)

PSN*_*PSN 7

我自己想通了.我创建的数据库是错误的.

正确的.travis.yml文件是

language: php

php:
  - 5.6

before_script:
  - cp .env.travis .env
  - mysql -e 'create database TheOpenBlog_tests;'
  - composer self-update
  - composer install --no-interaction
  - php artisan key:generate

script:
  - vendor/bin/phpunit
Run Code Online (Sandbox Code Playgroud)

更正了.env.travis档案

APP_ENV=TheOpenBlog_testing
APP_KEY=SomeRandomString

DB_CONNECTION=TheOpenBlog_testing
DB_DATABASE=TheOpenBlog_tests
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=sync
Run Code Online (Sandbox Code Playgroud)

最后加上这个

<env name="APP_ENV" value="TheOpenBlog_testing"/>
Run Code Online (Sandbox Code Playgroud)

并删除此

<env name="DB_CONNECTION" value="TheOpenBlog_testing"/>
Run Code Online (Sandbox Code Playgroud)