利用Codeception和Travis CI来保证Laravel4项目代码的可用性

创建 .travis.yml 文件

  1. language: php 
  2.  
  3. php: 
  4.   - 5.4 
  5.   - 5.5 
  6.   - hhvm 
  7.  
  8. matrix: 
  9.   allow_failures: 
  10.     - php: hhvm 
  11.  
  12. branches: 
  13.   except: 
  14.     - gh-pages 
  15.  
  16. before_script: 
  17.   - "mysql -e 'create database `phphub`;'" 
  18.   - composer install -n --prefer-source 
  19.   - php artisan migrate --seed -n 
  20.   - ./vendor/bin/codecept build 
  21.  
  22. script: 
  23.   - ./vendor/bin/codecept run 

配置信息可读性挺好的, 这个项目的最小支持版本为 PHP 5.4 , 这里我们让我们的测试跑在 PHP 5.4 PHP 5.5HHVM 上.

before_script 里是一些需要提前做的事情

  1. 创建数据库, 用来测试;
  2. composer install 相关的 Package 依赖, -n 代表 No Interactive, 就是没有用户交互, 不需要询问, 采用默认的意思;
  3. 部署好数据库, -n 同上;
  4. codecept 在运行前需要执行 build 命令, 加载 suite 里面用到的 module , 对于这个概念不熟悉的朋友请见 Modules And Helpers.

最后一行不解释..

Travis CI 服务器后台添加项目

到了 Travis CI 首页, 右上角有 Github 帐号授权登录, 登录成功后会有类似于下面的界面:

找到你想要测试的项目, 点击开启:

本地修改点文件, 提交到 github , 这个时候, Travis CI 被 Github 的 Git Hook 触发, 自动进入测试.

遇到的问题

第一个问题 - 数据库连接

默认的 CI 数据库用户名是 root , 密码是空, 数据库名称是 .travis.yml 里面 before_script 创建的那个数据库.

第二个问题 - Class 'Eloquent' not found ...

PHP Fatal error:  Class 'Eloquent' not found in /home/travis/build/summerblue/phphub/app/models/User.php on line 10 

解决方法是在 test/_bootstrap.php 写入以下代码:

  1. require __DIR__.'/../vendor/autoload.php'
  2. $app = require_once __DIR__.'/../bootstrap/start.php'
  3.  
  4. $app->boot(); 

All set, enjoy it.

---- EOF ---

转载请注明:代码家园 » 利用Codeception和Travis CI来保证Laravel4项目代码的可用性

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)