我开始在我的项目中使用 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
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报
0/150
提交
取消