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 部署到 Nginx 中出现错误“无法打开流:没有这样的文件或目录”
Laravel classloader.php 错误打开流失败:没有这样的文件或目录
在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录 [重复]
在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录 [重复]
Laravel 5.5:Storage::put,file_put_contents 错误:无法打开流:没有这样的文件或目录