gpt4 book ai didi

laravel - PHPUnit 6.2 fatal error : Class 'Eloquent' not found in/. ../Database/Model.php

转载 作者:行者123 更新时间:2023-12-02 13:46:50 24 4
gpt4 key购买 nike

在 PHPUnit 5.x 中我没有遇到任何问题。升级到 6.2 后,我开始收到以下错误: fatal error :在第 14 行/my/app/Database/Model.php 中找不到“Eloquent”类我已经执行了composer dump-autoload。因为它之前可以工作,所以我认为这是因为新版本中对 TestCase.php 的设置方式进行了更改,但我找不到任何可靠的东西。

在测试本身中,我像这样调用父设置方法

测试设置方法:

public function setUp()
{
parent::setUp();
}

测试用例.php:

class TestCase extends Illuminate\Foundation\Testing\TestCase {
protected $baseUrl = 'http://whatever.thing';
public $user;
public $password;
public $mockUser;
public function createApplication() {
//Server address used by the test suite's instance of $_SERVER.
$_SERVER['REMOTE_ADDR'] = isset($_SERVER['REMOTE_ADDR'])? $_SERVER['REMOTE_ADDR']:'127.0.0.1';

$app = require __DIR__.'/../bootstrap/app.php';

$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();

return $app;
}

}

最佳答案

我弄清楚了升级过程中出了什么问题。首先,我有一个模型类,它扩展了 Eloquent,如下所示:

use Eloquent;

我把它改成了这个并且它起作用了:

use Illuminate\Database\Eloquent\Model as Eloquent;

然后,我生成了一个新的 Laravel 5.4 项目,并查看了他们如何实现新版本的 PHPUnit。我遵循了新的结构,并将我的 TestCase.php 更改为新的前进方式。对于任何寻找的人:

测试用例.php:

namespace Tests;

use Illuminate\Foundation\Testing\TestCase as BaseTestCase;

abstract class TestCase extends BaseTestCase
{
use CreatesApplication;
}

CreatesApplication.php:

namespace Tests;

use Illuminate\Contracts\Console\Kernel;

trait CreatesApplication
{
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';

$app->make(Kernel::class)->bootstrap();

return $app;
}
}

关于laravel - PHPUnit 6.2 fatal error : Class 'Eloquent' not found in/. ../Database/Model.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45380140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com