2013-06-04 15 views
13

Próbuję uruchomić testy w PHPUnit i otrzymuję ten błąd.Klasa __PHP_Incomplete_Class nie ma niezmniejszonej wersji próbnej

Fatal error: Uncaught exception 'ErrorException' with message 'Class __PHP_Incomplete_Class has no unserializer' in /opt/lampp/lib/php/PHPUnit/Util/PHP.php:237

PHP - 5.4.7 
PHPUnit - 3.7.21 

ustawienie PHPUnit:

processIsolation = "true" 

góry dzięki.

+1

Czy próbowałeś googlować? https://www.google.co.uk/search?q=Class+__PHP_Incomplete_Class+has+no+unserializer Wydaje się być problemem specyficznym dla PHPUnit i symfony2 – Pudge601

+0

http://stackoverflow.com/a/14514753/921154 być spokrewnionym. Podczas pracy z ramą, która umieszcza połączenie PDO w zasięgu globalnym, rozwiązaniem było dodanie tej zmiennej do backupglobalblacklist: http://phpunit.de/manual/3.7/en/fixtures.html#idp7165424 – qrazi

Odpowiedz

1

Spróbuj otworzyć witrynę w przeglądarce, a następnie spróbuj ponownie wykonać test. Jestem pewien, że to zadziała, wydaje się, że istnieje pewna różnica w generowaniu pamięci podręcznej przez Php Unit i przez Symfony

10

Spróbuj wyczyścić pamięć podręczną dla środowiska testowego. php app/console cache:clear --env=test

+0

Dzięki, ale nie działa, znam przyczynę, ale nie jestem tego pewien, ponieważ nie mam na to żadnego rozwiązania. Ten problem wynika z tego, że "GLOBALS" operuje inaczej w PHP i PHPUNIT, nawet wypróbowałem tę opcję (http://phpunit.de/manual/3.7/en/appendixes.annotations.html#appendixes.annotations.backupGlobals) – Infinity

6

Oto rozwiązanie debugowania, które mogą pomóc w znalezieniu gdzie metoda unserialize zawodzi:

<?php 
ini_set('unserialize_callback_func', 'debug_unserialize'); 

function debug_unserialize($classname) 
{ 
    die(var_dump($classname)); 
} 

W ten sposób będzie można zobaczyć, które classname jest przyczyną problemu.

+0

Przydatne polecenie. Jednak moje wyniki pokazują klasę, która nie istnieje. Jakieś pomysły na to, dlaczego tak się stało? Mam wrażenie, że jest to spowodowane tym, że coś poszło nie tak z kompozytorem lub pamięcią podręczną, ale wyczyściłem oba i ponownie zainstalowałem pakiety kompozytora – Windowpane

Powiązane problemy