2011-03-08 4 views
3

저는 DynamicGuys doctrine2를 zend 프레임 워크 (https://github.com/dynamicguy/zf1doctrine2)에 통합하여 사용하고 있습니다. 그것은 작동하지만, 난 phpunit을 가진 테스트를 만들고 싶어 나는이 오류가 발생합니다 : PDOExeption을 : 당신은 직렬화 또는 내가 조금 검색 한ZF + Doctrine2 phpUnit 오류 : PDOExeption : PDO 인스턴스를 serialize하거나 병합 취소 할 수 없습니다.

때 unserialize PDO 인스턴스 수없고, 나는 라인 (44)을 주석 처리하면 것을 발견 https://github.com/dynamicguy/zf1doctrine2/blob/master/library/ZendX/Doctrine2/Application/Resource/Entitymanagerfactory.php phpUnit는 작동하지만 엔티티 관리자가 반환되지 않으므로 응용 프로그램의 나머지 부분은 작동하지 않습니다.

오류의 출처에 대한 아이디어가 있습니까?

답변

4

이것은 PHPUnit 백업 글로벌 및 각 테스트 사이의 정적 속성과 관련이 있습니다. PDO 인스턴스가있는 경우 직렬화하려고 할 때 해체됩니다. 비슷한 문제가 발생하여 PDO 인스턴스가 전역 매개 변수로 저장되는 위치를 찾을 수 없지만 필요한 테스트에서 backupGlobals 및 backupStaticAttributes를 비활성화하면 트릭을 수행하게됩니다.

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

소스 : http://sebastian-bergmann.de/archives/797-Global-Variables-and-PHPUnit.html

+0

그래서이 비활성화, 어떤 방법으로 시험에 영향을 나던? – Danielss89

+0

필자가 제공 한 소스에 따르면, 다른 테스트에 영향을주는 전역 변수가있는 경우 해당 변수에 종속 된 테스트를 수행하는 전역 변수가 없으면 정상적으로 실행되어야합니다. –

+0

자, 실제로 각 테스트 파일에서이 작업을 수행해야합니다. ( – Danielss89

관련 문제