【问题标题】:laravel testing error, no such file or directorylaravel 测试错误,没有这样的文件或目录
【发布时间】: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 可以正常工作,没有错误。

【问题讨论】:

    标签: laravel unit-testing laravel-5 phpunit


    【解决方案1】:

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

    【讨论】:

    • 不,我没有对其进行任何更改。需要修改吗?
    • 我注意到当我在终端中运行 php -m 时我的 php-cli 没有 pdo-mysql ,我得到了已安装模块的列表,我在其中看到( pdo , pdo_sqlite )但没有pdo_mysql 如何为 php-cli 安装它(它已经安装在 PHP CGI 中)我在 fedora 27 上运行 @nvisser
    猜你喜欢
    • 2017-10-22
    • 2021-10-31
    • 1970-01-01
    • 2015-06-24
    • 2021-09-26
    • 2017-07-05
    • 2021-04-09
    • 2022-12-18
    • 2013-08-08
    相关资源
    最近更新 更多