【发布时间】:2021-02-09 19:20:22
【问题描述】:
由于某种原因,我的应用程序在测试打印错误时无法使用 :memory: 作为数据库:SQLSTATE[HY000] [1049] Unknown database ':memory:'
如何让我的测试使用内存中的数据库?我查看了 Stack Overflow、LaraCast 和 Reddit,但没有找到解决方案。有没有其他方法可以做到这一点?
PhpUnit.xml
<php>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="DB_CONNECTION" value="sqlite"/>
<server name="DB_DATABASE" value=":memory:"/>
<server name="MAIL_DRIVER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
<server name="TELESCOPE_ENABLED" value="false"/>
</php>
config/database.php
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
//'database' => database_path('database.sqlite'),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
我已经运行了php artisan config:clear 和cache:clear。
【问题讨论】:
-
你的测试是如何运行的?
-
@KennyHorna 通过 CLI 使用 vendor/bin/phpunit --filter="myTestCase"
-
您是否尝试指定配置文件?
vendor/bin/phpunit --filter="myTestCase" --configuration phpunit.xml -
是的,同样的错误发生
-
查看this thread,也许对你有帮助