由于配置文件中的错误,我们在执行 phpunit 测试时一直遇到本地数据库被删除的问题。我想编写一个函数,该函数将在测试运行之前检查正在连接到哪个数据库,如果未使用正确的数据库,则退出。在 phpunit 测试期间如何检测正在使用哪个数据库?我想要捕获的一种情况是设置已更新但未缓存(文件看起来正确,但使用了错误的数据库。)
我已经尝试过
env()
和config()
,但都没有给我我想要的东西。
$dbconnect = DB::connection()->getPDO();
$dbname = DB::connection()->getDatabaseName();
抛出错误。
我可以打开物理
.env
和 env.testing
文件并查找设置,但如果设置未正确缓存,则此操作不起作用。
在 phpunit 测试期间选择错误的数据库可能会是一场灾难。这样做可能会破坏您的真实数据。这是一个简单的解决方案:在 setUp() 函数中尽早编写数据库查询,查找真实数据或测试数据(用户表是一个很好的目标。)
示例:
DB::table('users')->get();
如果找到真正的用户,那么你就知道你选择了错误的数据库,你可以退出()。此外,您还需要在此查询之前进行检查,以确保数据库不为空。否则,table() 函数将返回错误。如果数据库为空,那么您可能没有选择有用数据的数据库。
示例:
DB::select('SHOW TABLES');