Laravel 6测试-未知数据库';:内存:';
由于某些原因,我的应用程序无法在测试时使用Laravel 6测试-未知数据库';:内存:';,laravel,sqlite,phpunit,Laravel,Sqlite,Phpunit,由于某些原因,我的应用程序无法在测试时使用:内存:作为数据库。只需获取错误:SQLSTATE[HY000][1049]未知数据库:内存:' 请协助我如何让我的测试使用内存中的数据库?我已经查看了stack、laracast和redit,但还没有找到解决方案。是否有其他方法可以做到这一点 PhpUnit.xml <php> <server name="APP_ENV" value="testing"/> <ser
:内存:
作为数据库。只需获取错误:SQLSTATE[HY000][1049]未知数据库:内存:'
请协助我如何让我的测试使用内存中的数据库?我已经查看了stack、laracast和redit,但还没有找到解决方案。是否有其他方法可以做到这一点
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>
我已经清除了
php artisan config:clear
&cache:clear
,因此最终决定删除
,这种方法有效,但仍然会出现其他错误,但它让我意识到我的phpunit.xml
并没有覆盖我的数据库连接
因此,故事的长短不一之处在于,我最终创建了一个测试连接,该连接使用了有效的:memory:
数据库
'testing' => [
'driver' => 'sqlite',
'database' => ':memory:',
],
至于最初是什么阻止它以标准方式工作,我仍然不知道。但这解决了我的问题。您是如何运行测试的?@KennyHorna通过CLI使用vendor/bin/phpunit--filter=“myTestCase”是否尝试指定配置文件
vendor/bin/phpunit--filter=“myTestCase”--configuration phpunit.xml
是的,出现了相同的错误。请检查,也许它可以帮助您
'testing' => [
'driver' => 'sqlite',
'database' => ':memory:',
],