laravel - Laravel 6 测试期间出现“引导/缓存目录必须存在且可写”错误

标签 laravel phpunit laravel-6

Laravel 6 在 phpunit.xml 中包含一些附加配置:

<server name="APP_CONFIG_CACHE" value="bootstrap/cache/config.phpunit.php"/>
<server name="APP_SERVICES_CACHE" value="bootstrap/cache/services.phpunit.php"/>
<server name="APP_PACKAGES_CACHE" value="bootstrap/cache/packages.phpunit.php"/>
<server name="APP_ROUTES_CACHE" value="bootstrap/cache/routes.phpunit.php"/>
<server name="APP_EVENTS_CACHE" value="bootstrap/cache/events.phpunit.php"/>

如果我在 PHPStorm 中运行测试,则会收到以下错误:

In PackageManifest.php line 168:

The bootstrap/cache directory must be present and writable.

但是 bootstrap/cache 目录确实存在并且可写。但是,如果我在 phpunit.xml 中注释掉这些新配置,我的测试运行时不会出现任何错误。我该如何解决这个问题?

我还运行了php artisan cache:clear。运气不好。

最佳答案

如果您运行的是 Linux,很可能是读/写权限问题,要解决这些问题,请执行以下操作:

在执行以下步骤之前,请确保位于 Laravel 文件夹之外

假设您的用户应该是所有者,请键入以下命令:

sudo chown -R user:www-data /path/of/your/laravel/project

然后授予用户和网络服务器权限,如下所示:

sudo find /path/of/your/laravel/project -type f -exec chmod 664 {} \;

然后运行:

sudo find /path/of/your/laravel/project -type d -exec chmod 775 {} \;

运行这些命令后,转到 Laravel 文件夹并授予网络服务器读取/写入 bootstrap/cachestorage 文件夹的权限:

sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache

它不仅应该解决您的问题,还应该解决您的项目安全。

关于laravel - Laravel 6 测试期间出现“引导/缓存目录必须存在且可写”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57882645/

相关文章:

php - Laravel Eloquent 区分大小写

php - 如何使用PHPUnit设置ExpectedException()?

php - Laravel 作业被推送到队列事件

jquery - laravel 模态删除确认不会去销毁路由

mysql - MySQL可以自动更新数量字段吗?

PHPUnit - 使用 $this 或 self 作为静态方法?

php - Zend 应用程序的 PHPUnit 测试策略

php - Laravel 6 - CSS 文件传输到公共(public)文件夹

javascript - 如何排除 RRule.js 中的日期?

php - 如何使用 laravel 基于数据库条目运行 cron 作业?