如何将PHPUnit的DBUnit与Microsoft SQL Server数据库一起使用?

时间:2017-04-19 20:07:11

标签: php sql-server zend-framework phpunit dbunit

我正在使用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方法可以做到。

1 个答案:

答案 0 :(得分:0)

如果您的问题是PDO连接,我建议您尝试使用与SQL Server Driver for PHP捆绑在一起的pdo_sqlsrv驱动程序。您必须使用的连接字符串如下所示:

new PDO("sqlsrv:Server=localhost;Database=testdb", "UserName", "Password");