我正在尝试使用Codeception来运行我的Laravel4单元测试。
为一个没有依赖项的简单类运行测试效果很好。但是当我实例化一个依赖于雄辩的模型时,我得到了这个致命的错误:
PHP致命错误:在第4行的/var/www/project/app/models/Role.PHP中找不到类'elount'
单元测试:
<?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);
}
}
型号:
<?php
class Role extends Eloquent
{
public function users()
{
return $this->belongsToMany('User');
}
}
项目结构:
我正在从项目根目录运行vendor/bin/codecept运行单元,文件结构如下:
/project
codeception.yml
/vendor/bin/codecept
/app
/tests
unit.suite.yml
/unit
ExampleTest.php
/models
Role.php
...etc
我做错了什么?
这个问题的答案现在有点过时了。使用Laravel 5,我得到了同样的错误(类'雄辩'未找到...),并通过从Laravels基本TestCase.php文件复制代码来解决它。此文件用于Laravel框架内的测试(不使用代码欺骗)。
要修复“Eloquent not found”错误,请将以下行添加到project/tests/unit/_bootstrap.php
<?php
$app = require __DIR__.'/../../bootstrap/app.php';
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
老实说,我不知道它为什么有效,但它确实有效!如果我知道原因或有人评论,我会编辑。
我可能会迟到,但如果你不需要codecept的东西。您应该扩展laravel的PHPUnit_Framework_测试用例实现,称为just TestCase。这样地:
class TestModel extends TestCase {
}
通过查看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');
编辑:从Laravel 4.0升级到4.1时,还需要添加一行:
$app->boot();
我正在使用代码欺骗TDD开发一个简单的PHP应用程序。我用一个简单的断言创建了我的第一个单元测试DogTest.php,但是它抱怨找不到Dog类。 我在根目录中创建了一个Dog.php文件,并将其放在/src下,但两者都不起作用。我认为这要么是名称空间问题,要么是自动加载问题,但是Codeception文档(以及我看过的各种TDD指南)缺少这个重要的细节。 有人能告诉我如何让我的狗测试来检测狗类吗
在Laravel应用程序中使用使用PHPUnit编写单元测试时,我遇到了一个问题。我收到的错误是: PHP致命错误:类'雄辩'没有在第7行 /path/to/project/app/models/ExampleClass.php中找到 看起来
我正在尝试为我的简单网站编写一些单元测试(用于学习)。 项目结构: 在index.php中,我定义了一个。 函数位于中,类位于中。 测试/单元/BuildGalleryTest.php代码: 当运行我得到以下错误: 我做错了什么?如何解决这个问题?
我将有一个充满涉及其他表(关系)的信息的表。此表中的大多数信息将只有引用相关表的ID。如果我使用“产品”作为此表的示例,对于某些列来说可能是这样的: 我想把这个“产品”表倒出到一个列表中。当我将其转储(关系)时,我需要查找这些列中的所有项。我知道如何做物品和物品,但是我不确定如果我有一个“产品”模型,我怎么能用雄辩的模型一次性做到这一点?我应该让产品表只是一个数据透视表吗?我可以用雄辩的模型做它,
我在使用Yii2进行Codeception时遇到了一些问题。我刚刚升级到Yii 2.0.10,一直在使用本指南 我收到错误:
我正在写一个简单的测试用例。我使用作曲家安装了代码欺骗。我的测试用例位于测试用例文件夹内的根文件夹中 当我尝试运行以下代码时 当我尝试在浏览器中运行代码时,我得到以下错误 在我的项目中有一个名为yiisoft\yii2-codecsion\TestCase.php的文件 我做错了什么?有人能帮忙吗。?