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

标签 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

最佳答案

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

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

关于php - 如何使用 Travis CI 测试 laravel 5.2 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38018283/

相关文章:

php - Laravel::php artisan migrate 没有更新更改

javascript - 使用 NodeJS(或 PHP)将 API 数据保存到 JSON 文件

javascript - 在 JavaScript 中设置或更改 PHP 变量

mysql - MySQL如何找出连续行中日期的差异并分别更新表列?

asp.net - Web 应用程序需要 WCF 吗?

php - 由于模拟准备好的语句已关闭而导致排序错误

mysql - MySQL中栈的实现

javascript - 如何在不同的下拉列表中显示所有菜单和子菜单项?

php - 如何在 laravel 中使用 base64 编码 api URL?

php - RouteCollection.php 第 219 行中的 Laravel 5.2 MethodNotAllowedHttpException