mtm*_*ald 5 phpunit laravel eloquent laravel-4 codeception
我正在尝试使用Codeception来运行我的Laravel 4单元测试.
对没有依赖项的简单类运行测试可以正常工作.但是当我实例化依赖于Eloquent的模型时,我得到了这个致命的错误:
PHP致命错误:第4行的/var/www/project/app/models/Role.php中找不到类'Eloquent'
单元测试:
<?php
use Codeception\Util\Stub;
class TestModel extends \Codeception\TestCase\Test
{
public function testExample()
{
$role = new Role;
$role->name = 'superuser';
$this->assertEquals('superuser', $role->name);
}
}
Run Code Online (Sandbox Code Playgroud)
模型:
<?php
class Role extends Eloquent
{
public function users()
{
return $this->belongsToMany('User');
}
}
Run Code Online (Sandbox Code Playgroud)
项目结构:
我正在从项目根目录运行vendor/bin/codecept运行单元,具有以下文件结构:
/project
codeception.yml
/vendor/bin/codecept
/app
/tests
unit.suite.yml
/unit
ExampleTest.php
/models
Role.php
...etc
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
通过查看Codeception L4示例应用程序,我能够看到如何通过将这些行添加到project/app/tests/_boostrap.php来引导自动加载来解决此问题:
include __DIR__.'/../../vendor/autoload.php';
$app = require_once __DIR__.'/../../bootstrap/start.php';
\Codeception\Util\Autoload::registerSuffix('Page', __DIR__.DIRECTORY_SEPARATOR.'_pages');
Run Code Online (Sandbox Code Playgroud)
编辑:从Laravel 4.0升级到4.1时,还需要添加额外的行:
$app->boot();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3869 次 |
最近记录: |