Тестирование Zend с phpunit дает мне "Драйвер MySQL в настоящее время не установлен" - PullRequest
0 голосов
/ 30 августа 2011

У меня есть этот класс тестирования

<?php

class IndexControllerTest extends ControllerTestCase
{
....


    public function testValidLoginShouldGoToProfilePage()
    {
        $this->request->setMethod('POST')
              ->setPost(array(
                  'email' => 'capoarea',
                  'password' => '123456'
              ));
        $this->dispatch('/user/login');
        $this->assertRedirectTo('/index/index');

        $this->resetRequest()
             ->resetResponse();

        $this->request->setMethod('GET')
             ->setPost(array());
        $this->dispatch('/cliente/index');
        $this->assertRoute('default');
        $this->assertModule('default');
        $this->assertController('cliente');
        $this->assertAction('index');
        $this->assertNotRedirect();
    }

}

и этот application.ini

[production]
.....
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.db.params.charset = "utf8"
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = ""
resources.db.params.dbname = "gestionale"
resources.db.isDefaultTableAdapter = true
autoloaderNamespaces[] = "Gestionale_";serve per caricare il plugin di sotto quando si usa anche ZFdebug
resources.frontController.plugins.acl = "Gestionale_Controller_Plugin_Acl"
resources.db.params.profiler = true


....
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

, и я получаю эту ошибку enter image description here

в приложении ini тестирование расширяет производство так что он должен иметь всю конфигурацию базы данных, что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 31 августа 2011

Скорее всего, ваш интерпретатор командной строки php использует другой файл php.ini.

Чтобы проверить наличие драйвера MySQL, откройте новое приглашение оболочки и запустите php -m и убедитесь, что расширения mysql загружены.

> php -m | grep -i sql
mysql
mysqli
mysqlnd
pdo_mysql
pdo_sqlite
SQLite
sqlite3

Чтобы увидеть, какой загруженный INI-файл, используйте флаг -i команды php

> php -i | grep ini
Configuration File (php.ini) Path => /opt/local/etc/php5
Loaded Configuration File => /opt/local/etc/php5/php.ini
Scan this dir for additional .ini files => /opt/local/var/db/php5
Additional .ini files parsed => /opt/local/var/db/php5/apc.ini,

Не знаю, есть ли в Windows команда grep как для фильтрации выходных данных, если нет, вам нужно проверить все выходные данные php -m и php -i, чтобы собрать необходимые строки или установить windows grep утилита

2 голосов
/ 30 августа 2011

PHPUnit использует php.ini для командной строки.Я думаю, что вы должны включить драйверы SQL там.Вы можете проверить путь к вашему php.ini с помощью (протестировано на OsX :-))

php --ini

результат:

Configuration File (php.ini) Path: /Applications/MAMP/conf/php5.2
Loaded Configuration File:         /Applications/MAMP/conf/php5.2/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...