关于测试,5.8升级到6.0的时候,phpunit.xml 会默认指定 sqlite 作为测试环境数据库引擎
之前(5.8 版本)的项目我一直使用 msyql 作为测试数据库(我认为正式库和测试库使用同一类型更具有参考性)。
之前(5.8版本)我写测试脚本的时候,会使用 .env.testing
作为测试用的配置项。在配置文件中, 会额外指定一个测试数据库用于测试。
今天使用 6.* 版本初始化项目后。无论如何测试代码都跑不通。总说找不到数据表。检查之后发现在 phpunit.xml 中,强制覆盖了 DB_CONNECTION
和 DB_DATABASE
配置项。这会导致写在 .env.testing
中的配置项被覆盖,从而使用了 sqlite 作为测试数据库引擎而不是我指定的 mysql。