【问题标题】:Testing Database using laravel dusk使用 laravel 黄昏测试数据库
【发布时间】:2017-09-26 08:55:34
【问题描述】:

我正在使用 laravel 黄昏测试我的 laravel 应用程序,但问题是我无法使用 assertDatabaseHasfunction。当我运行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'],
]);

【问题讨论】:

    标签: php laravel phpunit laravel-dusk


    【解决方案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 在次要版本中进行了重大更改,这使得一些现有项目切换到新版本并非易事。
    猜你喜欢
    • 1970-01-01
    • 2018-03-27
    • 2019-01-16
    • 2018-01-21
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2023-04-01
    相关资源
    最近更新 更多