我正在使用PHPUnit和DBUnit为在命令行上运行的PHP应用程序创建测试,并将数据插入到Microsoft SQL Server数据库中。
DBUnit文档(https://phpunit.de/manual/current/en/database.html#database.supported-vendors-for-database-testing)指出不支持Microsoft SQL Server,但可以通过Zend Framework或Doctrine 2访问。
当我尝试:
$pdo = new PDO( "odbc:Driver={ODBC Driver 13 for SQL Server};Server=redacted", $user, $passwd );
$this->createDefaultDBConnection($pdo, $db);
我毫不奇怪地得到以下错误:
PHPUnit_Extensions_Database_Exception: Could not find a meta data driver for odbc pdo driver.
我发现Zend Framework文档显示了如何使用PHPUnit编写与关系数据库相关的测试(https://framework.zend.com/manual/1.10/en/zend.test.phpunit.db.html),我想如果我更好地理解Zend,我可以让它工作,所以我可能需要它帮助理解如何在编写整个Zend应用程序的情况下访问Zend类。
但也许有一些非Zend方法可以做到。
答案 0 :(得分:0)
如果您的问题是PDO连接,我建议您尝试使用与SQL Server Driver for PHP捆绑在一起的pdo_sqlsrv驱动程序。您必须使用的连接字符串如下所示:
new PDO("sqlsrv:Server=localhost;Database=testdb", "UserName", "Password");