我的测试之旅继续......
在一个应用程序中,我有多个数据库1.用于后端内容,后端用户和其他东西2.前端和前端用户。
要进行测试,我需要为前端创建一个用户并测试后端内容。
我试图配置Phpunit和laravel使用sqlite在内存中使用两个数据库而我正在努力。
我为每个数据库都有两个迁移文件,并在database.php
'sqlite_testing_memory' => [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
],
在我的phpunit.xml
我创建了以下内容:
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="DB_CONNECTION" value="sqlite_testing_memory"/>
<env name="DB_DEFAULT" value="sqlite_testing_memory" />
<env name="DB_DATABASE" value=":memory:"/>
<env name="DB_DATABASE_2" value=":memory:"/>
每次我尝试迁移数据库时都会因为已经存在的表格而产生冲突,例如后端的users
与前端的users
冲突。
我知道我可以使用Schema::connection->('connection_name')
在迁移文件中指定连接,但仍会发生冲突。
是否可以在内存中的sqlite中拥有多个数据库。
如何让我的测试使用多个数据库,还是应该考虑恢复到mysql测试数据库?
帮助表示赞赏
修改 我尝试删除重复的表,以便迁移工作但我现在有模型连接错误。
模型有一个连接属性设置为指向正确的连接 - 我正在尝试运行的测试现在出现错误:Unknown database ':memory:'
- 这与依赖于第二个数据库的模型有关连接