Я пытаюсь выполнить модульный тест с использованием PHPUNIT в классе, который использует MYSQL с использованием PDO.
Определение класса таково:
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 проблем с переполнением стека с этой проблемой (одна с Laravel, а другая с Symphony. Кстати, я не использую никакой фреймворк), они рекомендовали установить PDO_mysql.
Итак, я выполнил эти 2 команды (я использую Ubunt 12):
sudo apt-get install php5-mysql
php5enmod -s cli pdo_mysql
Я ожидал увидеть pdo_mysql с командой php -m. Но это не изменилось, и, конечно же, я все еще получаю сообщение об ошибке, что драйвер не найден.
Я очень ценю любое понимание этой ситуации.






Решением для меня было изменение хоста на 127.0.0.1. Использование localhost вызвало сбой.