ZF + Doctrine2 phpUnit error: PDOExeption: Вы не можете сериализовать или десериализовать экземпляры PDO - PullRequest
4 голосов
/ 08 марта 2011

Я использую DynamicGuys doctrine2 для интеграции с Zend Framework (https://github.com/dynamicguy/zf1doctrine2). Это работает, но если я хочу сделать тесты с phpUnit, я получаю эту ошибку: PDOExeption: Вы не можете сериализовать или десериализовать экземпляры PDO

Я немного искал и обнаружил, что если я закомментирую строку 44 в этом файле: https://github.com/dynamicguy/zf1doctrine2/blob/master/library/ZendX/Doctrine2/Application/Resource/Entitymanagerfactory.php phpUnit работает, но, конечно, остальная часть приложения не будет работать, так как менеджер сущностей не будет возвращен

Есть идеи, откуда возникла ошибка?

1 Ответ

4 голосов
/ 13 марта 2011

Это как-то связано с глобализацией резервного копирования PHPUnit и статическими атрибутами между каждым тестом.Если у вас есть экземпляр PDO, он сломается при попытке сериализации.Я столкнулся с подобной проблемой, и я не мог найти, где экземпляр PDO был сохранен как глобальный параметр, но отключил backupGlobals и backupStaticAttributes в необходимом тесте, у меня получилось.

/**
 * Search test.
 *
 * @backupGlobals disabled
 * @backupStaticAttributes disabled
 *
 * @author Steven Rosato
 */
class SearchControllerTest extends \Majisti\Test\TestCase
{
    ...
}

source: http://sebastian -bergmann.de / архивы / 797-Global-переменные-и-PHPUnit.html

...