【问题标题】:Class __PHP_Incomplete_Class has no unserializer类 __PHP_Incomplete_Class 没有反序列化器
【发布时间】:2013-05-30 14:52:18
【问题描述】:

我正在尝试在 PHPUnit 中运行测试并收到此错误。

致命错误:未捕获的异常 'ErrorException' 带有消息 'Class __PHP_Incomplete_Class 在 /opt/lampp/lib/php/PHPUnit/Util/PHP.php:237 中没有反序列化器

PHP - 5.4.7
PHPUnit - 3.7.21

PHPUnit 设置:

processIsolation = "true"

提前致谢。

【问题讨论】:

标签: php symfony phpunit lamp


【解决方案1】:

尝试在浏览器中打开您的网站,然后再次尝试执行测试。我相信它会起作用,似乎 Php Unit 和 Symfony 在缓存生成方面存在一些差异

【讨论】:

    【解决方案2】:

    尝试清除测试环境的缓存。 php app/console cache:clear --env=test

    【讨论】:

    • 谢谢,但它不起作用,我知道原因,但我不确定,因为我没有任何解决方案。这个问题是由于“GLOBALS”在 PHP 和 PHPUNIT 中的处理方式不同,我什至尝试过这个选项(phpunit.de/manual/3.7/en/…
    【解决方案3】:

    这是一个调试解决方案,可以帮助您找到反序列化方法失败的地方:

    <?php
    ini_set('unserialize_callback_func', 'debug_unserialize');
    
    function debug_unserialize($classname) 
    {
        die(var_dump($classname));
    }
    

    这样你会看到哪个类名导致了问题。

    【讨论】:

    • 有用的命令。但是,我的输出显示了一个不存在的类。关于为什么会这样的任何想法?我有一种感觉是因为作曲家或缓存出了问题,但我已经清除了这两个并重新安装了作曲家包
    【解决方案4】:

    我有同样的问题

    将 symfony 更新到 symfony 3.3.18 对我有用!

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多