为了账号安全,请及时绑定邮箱和手机立即绑定

在 PHPUnit 测试中无法访问全局 pdo 连接

在 PHPUnit 测试中无法访问全局 pdo 连接

PHP
德玛西亚99 2022-12-03 18:20:39
我开始在我的项目中使用 PHPUnit,我需要测试一些数据是否已成功存储在数据库中。我的问题是无法访问在名为 $connpdo 的单独文件中创建的 PDO 连接。我真的不明白为什么。这是我的代码:<?phpinclude_once("database_inc.php");use PHPUnit\Framework\TestCase;function save_twins($auto_id = 412184){    global $connpdo;    $query = "select quality_inspection from dqa_manifest_upload_rules where auto_id = $auto_id";    $stmt = $connpdo->query($query);    $row = $stmt->fetch(PDO::FETCH_ASSOC);    $quality = $row["quality_inspection"];    return $quality;}class Test_save_twins extends TestCase{    public function testExamples()    {        $this->assertEquals('A', save_twins(412184));    }}?>$connpdo 变量在文件database_inc.php中创建$connpdo = new PDO("mysql:host=$cfgiDbHost;dbname=$cfgiDbDatabase;charset=utf8", $cfgiDbUser, $cfgiDbPasswd);我也尝试过不使用 global,但我不知道会发生什么。也许使用命名空间?:use PHPUnit\Framework\TestCase;我想也许 pdo 没有启用,但我已经检查过php -m,我看到了那些模块:
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

好吧,几个月后我明白了 PHPunit 是如何工作的。如果它在方法之外,它不会读取数据库的 include_once。我将它移到函数内部,并且在数据库的同一台服务器上更改了远程环境的 phpUnit 环境,因此允许连接。

在这两项更改之后,我的测试正在运行: https ://www.screencast.com/t/O2ccmcxt2


查看完整回答
反对 回复 2022-12-03
  • 1 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号