laravel测试需要多个数据库尝试使用sqlite重复表

时间:2018-03-29 08:49:17

标签: laravel sqlite testing phpunit

我的测试之旅继续......

在一个应用程序中,我有多个数据库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:' - 这与依赖于第二个数据库的模型有关连接

0 个答案:

没有答案