首页 > 解决方案 > 运行 PHPUnit 时出现“找不到驱动程序”错误消息

问题描述

我正在尝试在使用 PDO 的 MYSQL 的类上使用 PHPUNIT 进行单元测试。

类定义是这样的:

class InputRules{
private $_errors = array(),
        $_db = NULL,
        $_pass = false;  

public function __construct(){

    $_db = DB::getInstance();
}

测试脚本是这样的:

class InputRulesTest extends \PHPUnit_Framework_TestCase
{
    public function test_email_is_empty()
    {
        $Input = new InputRules();
    }
}

我收到此错误消息:

PDO exception: Cannot find driver.

我知道 PDO_mysql 模块适用于 Apache,但不适用于 CLI。

当我执行“php -m”时,我得到:

[PHP Modules]
bcmath
bz2
calendar
Core
ctype
date
dom
fileinfo
filter
hash
json
libxml
mbstring
mcrypt
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]

在阅读了 2 个有关此类问题的 stackoverflow 问题(一个使用 Laravel,另一个使用 Symphony。顺便说一句,我没有使用任何框架),他们建议安装 PDO_mysql。

所以我执行了这两个命令,(我使用的是 Ubunt 12):

    sudo apt-get install php5-mysql
    php5enmod -s cli pdo_mysql

我希望看到 pdo_mysql 与 php -m 命令。但它没有改变,当然我仍然收到有关找不到驱动程序的错误消息。

我非常感谢对这种情况的任何见解。

标签: phpphpunit

解决方案


我的解决方案是将主机更改为127.0.0.1. 使用localhost导致失败。


推荐阅读