Laravel Dusk忽略.env.黄昏和.env.黄昏.本地(使用Valet和Laravel 5.5)

sq1bmfud  于 2023-01-27  发布在  其他
关注(0)|答案(4)|浏览(143)

我正在尝试运行Laravel Dusk,我需要使用一个测试数据库。当我检查屏幕截图时,它说数据库不存在。问题是,这是在.env上定义的数据库,而不是在.env上定义的数据库。黄昏...我尝试将文件重命名为.env.黄昏。本地,仍然没有运气。我做错了什么?

n53p2ov0

n53p2ov01#

尝试清除您的缓存?我记得当我第一次开始使用黄昏时也有类似的问题。

php artisan cache:clear
vcudknz3

vcudknz32#

我也遇到了同样的问题。最近我发现. env文件是在黄昏开始前缓存的。
我通过添加以下内容解决了这个问题

$this->artisan('config:cache');

插入CreateApplication.php中的createApplication()函数。它的工作原理是:)
但是如果我完成了黄昏测试我就得跑了

php artisan config:cache

让原来的服务器运行起来。

    • 编辑:**

后来我试着简单地调用

php artisan config:clear

也可以防止应用程序缓存env变量。(更简单、更快)

irlmq6kh

irlmq6kh3#

我可以通过以下步骤来实现这一点:
1.删除.env.testing
1.运行php artisan dusk(这将创建phpunit.dusk.xml)。
1.将以下内容添加到这个新创建的文件的末尾

<phpunit>
    ...

    <php>
        <server name="APP_ENV" value="local"/>
    </php>
</phpunit>

1.现在你可以恢复.env.testing,它仍然可以用于phpunit测试。

原始答案

我发现如果你删除.env.testing,它就会使用.env.dusk.local。看起来.env.testing总是优先的。
这并不能解决使用单独的.env进行单元测试&黄昏的问题;这在使用SQLite运行存储器中的单元测试和黄昏测试时是有用的。

w1jd8yoj

w1jd8yoj4#

同样的问题......问题是你忘记为你的测试环境创建配置缓存文件,所以黄昏将使用你当前的本地配置缓存文件代替。
1/将.env复制到.env.dusk.testing并编辑以下内容:

APP_ENV=testing

DB_DATABASE=halfwish_test #I use different MYSQL database for testing.

2/运行此命令:

$ php artisan config:cache --env=dusk.testing && php artisan clear //clear compiled services and packages files and cache config file.
$ php artisan migrate:fresh --env=dusk.testing && php artisan seed --env=dusk.testing //this is migrating and seeding demo data to DB.

现在可以运行php artisan dusk了。

相关问题