2013-06-04 7 views
13

PHPUnitでテストを実行しようとしていますが、このエラーが発生しています。クラス__PHP_Incomplete_Classにはシリアライザがありません

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 

PHPUnitの設定:事前に

processIsolation = "true" 

感謝。

+1

これはGoogleで検索しましたか? https://www.google.co.uk/search?q=Class+__PHP_Incomplete_Class+has+no+unserializer PHPUnitとsymfony2に固有の問題と思われます – Pudge601

+0

http://stackoverflow.com/a/14514753/921154かもしれない関連する。グローバルスコープにPDO接続を設定するフレームワークを使用している場合、解決策はその変数をbackupglobalblacklistに追加することでした:http://phpunit.de/manual/3.7/en/fixtures.html#idp7165424 – qrazi

答えて

1

ブラウザでサイトを開いてから、もう一度テストを実行してみてください。私はそれが動作すると確信している、それはPhpユニットとSymfonyのキャッシュ生成にいくつかの違いがあるようだ。

10

テスト環境のキャッシュをクリアしてみてください。あなたは、問題の原因となっているクラス名が表示されます

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

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

その方法:php app/console cache:clear --env=test

+0

ありがとうございます私は理由を知っているが、私はそれについて何も解決策がないので、私はそれについてはわからない。この問題は、PHPとPHPUNITで "GLOBALS"の扱いが異なるため、このオプションを試してみました(http://phpunit.de/manual/3.7/en/appendixes.annotations.html#appendixes.annotations.backupGlobals) – Infinity

6

はここでアンシリアライズ方法が失敗している場所を見つけるのに役立つかもしれないデバッグ・ソリューションです。

+0

便利なコマンドです。しかし、私の出力は、存在しないクラスを示しています。なぜそうなるのかについてのアイデアはありますか?私は作曲家やキャッシュに何か間違っていると感じていますが、私は両方をクリアして作者パッケージを再インストールしました – Windowpane

関連する問題