使用 laravel 黄昏测试数据库
Posted
技术标签:
【中文标题】使用 laravel 黄昏测试数据库【英文标题】:Testing Database using laravel dusk 【发布时间】:2017-09-26 08:55:34 【问题描述】:我正在使用 laravel 黄昏测试我的 laravel 应用程序,但问题是我无法使用 assertDatabaseHas
function。当我运行php artisan dusk
命令时,我收到了这个错误:
PHP Fatal error: Class 'PHPUnit_Framework_Constraint' not found in
vendor\laravel\framework\src\Illuminate\Foundation\Testing\Constraints\HasIn
Database.php on line 8
这是我的代码:
$this->assertDatabaseHas('teams', [
'name' => $data['team_name'],
]);
【问题讨论】:
【参考方案1】:请检查您的phpunit版本:
phpunit --version
如果您正在运行 v6,您可能会遇到麻烦,因为它需要一个命名空间类。在这种情况下,您要么必须切换到旧版本的 phpunit,例如为您的项目在本地安装,然后像这样运行:
php vendor/bin/phpunit --version
或者您可能需要更新您的 Laravel 项目,这可能需要更多的工作,因为您可能需要更改部分代码。
【讨论】:
谢谢,切换到 PHPUnit 5.7 版本后问题解决。 :) @ZeeshanAhmed 你应该继续使用 6.1 和use PHPUnit\Framework\Constraint
。然后扩展Constraint
@MarcoAurélioDeleu 它是来自 Laravel 框架的一个类。更改代码不是一个好主意,因为您通常不想维护自己的分叉。正如我上面提到的,更好的选择是升级,但不幸的是 Laravel 在次要版本中进行了重大更改,这使得一些现有项目切换到新版本并非易事。以上是关于使用 laravel 黄昏测试数据库的主要内容,如果未能解决你的问题,请参考以下文章
带有laravel Dusk的测试案例,显示错误'users_email_unique'
PHPUnit 测试使用 XAMPP localhost 而不是 laravel artisan serve