Laravel 5内存测试

Chr*_*ond 5 mysql sqlite in-memory-database behat laravel

我正在通过behat为大型Laravel 5项目编写测试。

我在MySQL中有我的MySQL数据库的测试副本,以及该数据库的种子服务器,该种子服务器共享其他环境的一些种子服务器。所有这些都按预期工作。

但是,我尝试切换到使用sqlite内存数据库,因为它将大大加快我的自动化测试的速度,并且因为在每个behat场景开始时我都在运行“ artsian migration:refresh --- seeder = TestDatabaseSeeder”。

我遇到的问题是我的某些种子数据导致sqlite抛出非常无法描述的语法错误,但是MySQL对种子数据完全没有问题。

我认为,理想情况下,我希望它在内存中使用MySQL来提高性能,并保持数据库引擎的一致性。运行测试时,有没有Laravel是否有简单的方法在内存中使用MySQL?一个不涉及以使sqlite满意的方式复制和编辑迁移文件的解决方案?

Chr*_*ond -1

事实证明,sqlite 不喜欢 ' 被转义的方式。

“\'”需要替换为“''”。而且 sqlite 不支持枚举,因此我更改了迁移并使用字符串而不是枚举。

  • 这不是这个问题的答案 - (3认同)