laravel 测试错误,没有这样的文件或目录

Posted

技术标签:

【中文标题】laravel 测试错误,没有这样的文件或目录【英文标题】:laravel testing error, no such file or directory 【发布时间】:2018-08-11 13:58:39 【问题描述】:

我正在尝试在 laravel 中创建我的第一个测试。

    $random = str_random(12);
    $payload = [
        'name' => $random,
        'email' => $random .'@www.com',
        'password' => '123456',            

    ];

    $this->json('post', '/api/v1/register', $payload)
    ->assertStatus(200);

从此 url /api/v1/register 调用的方法包含:

    $rules      = User::rules();
    $validation = \Validator::make( $this->input, $rules );

    if ( $validation->fails() ) 

        return true;
else return true;

当我运行测试时,它会给出响应状态 500。

当我在这一行上方写 (echo 1;) 时: if ( $validation->fails() ) 它输出 (1 ) 加上 500 状态响应

如果我在同一行下面写echo 1;,则没有任何输出,因此该行是产生错误的行。

我检查 laravel 日志文件,这是错误:

[2018-03-03 12:55:07] testing.ERROR: SQLSTATE[HY000] [2002] 没有这个 文件或目录 "exception":"[object] (PDOException(code: 2002): SQLSTATE[HY000] [2002] 没有这样的文件或目录 /opt/lampp/htdocs/ws/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:67)

注意:从浏览器或其他客户端调用相同的 URL 可以正常工作,没有错误。

【问题讨论】:

【参考方案1】:

您是否对您的phpunit.xml 进行了任何更改?在我看来,您的测试环境正在寻找一个不存在的数据库。

【讨论】:

不,我没有对其进行任何更改。需要修改吗? 我注意到当我在终端中运行 php -m 时我的 php-cli 没有 pdo-mysql ,我得到了已安装模块的列表,我在其中看到( pdo , pdo_sqlite )但没有pdo_mysql 如何为 php-cli 安装它(它已经安装在 PHP CGI 中)我在 fedora 27 上运行 @nvisser

以上是关于laravel 测试错误,没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

无法打开流:没有这样的文件或目录(Laravel)

将 laravel 部署到 Nginx 中出现错误“无法打开流:没有这样的文件或目录”

Laravel classloader.php 错误打开流失败:没有这样的文件或目录

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录 [重复]

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录 [重复]

Laravel 5.5:Storage::put,file_put_contents 错误:无法打开流:没有这样的文件或目录