在 phpunit 测试期间如何检测正在使用哪个数据库?

问题描述 投票:0回答:1

由于配置文件中的错误,我们在执行 phpunit 测试时一直遇到本地数据库被删除的问题。我想编写一个函数,该函数将在测试运行之前检查正在连接到哪个数据库,如果未使用正确的数据库,则退出。在 phpunit 测试期间如何检测正在使用哪个数据库?我想要捕获的一种情况是设置已更新但未缓存(文件看起来正确,但使用了错误的数据库。)

我已经尝试过

env()
config()
,但都没有给我我想要的东西。

$dbconnect = DB::connection()->getPDO();
$dbname = DB::connection()->getDatabaseName();

抛出错误。

我可以打开物理

.env
env.testing
文件并查找设置,但如果设置未正确缓存,则此操作不起作用。

phpunit config laravel-5.7
1个回答
0
投票

在 phpunit 测试期间选择错误的数据库可能会是一场灾难。这样做可能会破坏您的真实数据。这是一个简单的解决方案:在 setUp() 函数中尽早编写数据库查询,查找真实数据或测试数据(用户表是一个很好的目标。)

示例:

DB::table('users')->get();

如果找到真正的用户,那么你就知道你选择了错误的数据库,你可以退出()。此外,您还需要在此查询之前进行检查,以确保数据库不为空。否则,table() 函数将返回错误。如果数据库为空,那么您可能没有选择有用数据的数据库。

示例:

DB::select('SHOW TABLES');

© www.soinside.com 2019 - 2024. All rights reserved.