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

教程 duke-lee ⋅ 于 3年前 ⋅ 最后回复由 Cooper 2年前 ⋅ 6165 阅读

说明

关于 Travis CI 的介绍, 这里有篇文章写的很好, 这里就不再重复讲了 --> PHP开源项目使用Travis CI进行持续集成 .

这篇文章主要记录 PHPHub 是如何配置上 Travis CI 的, PHPhub 用的测试是 CodeceptionFunctional Test, 下面是现在的代码测试 Status:

Build Status

创建 .travis.yml 文件

language: php

php:
  - 5.4
  - 5.5
  - hhvm

matrix:
  allow_failures:
    - php: hhvm

branches:
  except:
    - gh-pages

before_script:
  - "mysql -e 'create database `phphub`;'"
  - composer install -n --prefer-source
  - php artisan migrate --seed -n
  - ./vendor/bin/codecept build

script:
  - ./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 写入以下代码:


require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';

$app->boot();

All set, enjoy it.

---- EOF ---


欢迎关注 LaravelTips, 这是一个专注于为 Laravel 开发者服务, 致力于帮助开发者更好的掌握 Laravel 框架, 提升开发效率的微信公众号.

本文章首发在 Laravel China 社区
本帖已被设为精华帖!
回复数量: 2
  • monkey 最重要的事,永远只有一件 1
    3年前

    Travis 可以将github上的项目自动编译,有人提交即可执行编译,让你第一时间知道提交是否OK。 这个功能如果团队有条件的话建议都加上,能最大程度减少低级错误的发生,节省大家时间。

  • Cooper :elephant: Developer
    3年前

    So Good!

暂无评论~~
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 100 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档