2013-06-04 11 views
13

Sto cercando di eseguire i test in PHPUnit e ottenere questo errore.Classe __PHP_Incomplete_Class non ha unserializer

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 

impostazione PHPUnit:

processIsolation = "true" 

Grazie in anticipo.

+1

Hai provato a cercare su Google? https://www.google.co.uk/search?q=Class+__PHP_Incomplete_Class+has+no+unserializer Sembra essere un problema specifico per PHPUnit e symfony2 – Pudge601

+0

http://stackoverflow.com/a/14514753/921154 potrebbe essere parenti. Quando si lavora con un framework che mette una connessione PDO nel suo ambito globale, la soluzione è stata quella di aggiungere tale variabile alla lista backupglobalblacklist: http://phpunit.de/manual/3.7/en/fixtures.html#idp7165424 – qrazi

risposta

1

Prova ad aprire il tuo sito in un browser e poi prova nuovamente a eseguire il test. Sono sicuro che funzionerebbe, sembra che ci sia qualche differenza nella generazione della cache da parte di Php Unit e da Symfony

10

Provare a svuotare la cache per l'ambiente di test. php app/console cache:clear --env=test

+0

Grazie, ma non ha funzionato, conosco la ragione ma non ne sono sicuro perché non ho alcuna soluzione. Questo problema è dovuto al fatto che i "GLOBALS" gestiscono diversamente in PHP e PHPUNIT, ho persino provato questa opzione (http://phpunit.de/manual/3.7/en/appendixes.annotations.html#appendixes.annotations.backupGlobals) – Infinity

6

Ecco una soluzione di debug che potrebbe aiutare a trovare in cui il metodo unserialize sta fallendo:

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

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

In questo modo potrete vedere quale nome di classe sta causando problemi.

+0

Comando utile. Tuttavia, il mio output mostra una classe che non esiste. Qualche idea sul perché sarebbe? Ho la sensazione che sia dovuto a qualcosa di sbagliato nel compositore o nella cache, ma ho cancellato entrambi i pacchetti di compositore e reinstallato – Windowpane

Problemi correlati