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

时间:2016-06-24 16:39:07

标签: php database laravel-5.2 travis-ci

我在Laravel 5.2中创建了一个项目,其源代码部署在github here。我在使用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

这是我的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>

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

我可以看到我的travis Build here

这是我在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

1 个答案:

答案 0 :(得分:6)

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

正确的.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

更正.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

最后添加此

<env name="APP_ENV" value="TheOpenBlog_testing"/>

并删除此

<env name="DB_CONNECTION" value="TheOpenBlog_testing"/>