Ich versuche Codeception zu verwenden, um meine Laravel 4 Komponententests auszuführen.Laravel 4 Modelleinheit Test mit Codeception - Klasse 'Eloquent' nicht gefunden
Das Ausführen eines Tests für eine einfache Klasse ohne Abhängigkeiten funktioniert einwandfrei. Aber wenn ich ein Modell instanziiere, das von Eloquent abhängt, erhalte ich diesen fatalen Fehler:
PHP Schwerwiegender Fehler: Klasse 'Eloquent' nicht gefunden in /var/www/project/app/models/Role.php on line 4
Unit-Test:
<?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);
}
}
Modell:
<?php
class Role extends Eloquent
{
public function users()
{
return $this->belongsToMany('User');
}
}
Projektstruktur:
Ich bin Verkäufer/bin/codecept Laufeinheit aus dem Projektstamm, mit dieser Dateistruktur ausgeführt wird:
/project
codeception.yml
/vendor/bin/codecept
/app
/tests
unit.suite.yml
/unit
ExampleTest.php
/models
Role.php
...etc
Was mache ich falsch?
Ich weiß nicht besonders über codeception, aber mit PHPUnit müssen Sie mindestens [Bootstrap der Klasse Autoloading] (https://github.com/laravel/laravel/blob/master/phpunit.xml#L4). Vielleicht ist es bei Codeception genauso. – fideloper
Ich weiß, das ist spät verrückt, aber nachdem Sie das Composer-Paket installieren. Sie geben das Stammverzeichnis der Site ein. "vendor/bin/codecept _bootstrap" und das wird die Datei für Sie generieren. – John