PHPUnit致命错误';调用未定义的函数xcache_get()';AWS SDK&;Symfony


PHPUnit fatal error 'call to undefined function xcache_get()' AWS SDK & Symfony 2

我正试图在我的Symfony 2应用程序中启动并运行PHPUnit,但我遇到了一个似乎无法解决的问题。

当我运行单元测试时,会返回一个致命错误,这在普通浏览器中不会发生。

测试功能

    $client = static::createClient(array(), array(
        'PHP_AUTH_USER' => 'test',
        'PHP_AUTH_PW'   => 'test',
    ));        
    $crawler = $client->request('GET', '/test/url');

控制台错误

 $ phpunit -c app/
 PHPUnit 3.6.10 by Sebastian Bergmann.
 Configuration read from /Acme/app/phpunit.xml.dist
 PHP Fatal error:  Call to undefined function xcache_get() in /Acme/vendor/aws-sdk-for-php/lib/cachecore/cachexcache.class.php on line 58
 Fatal error: Call to undefined function xcache_get() in /Acme/vendor/aws-sdk-for-php/lib/cachecore/cachexcache.class.php on line 58

线路错误是指(在AWS SDK中)本摘录中的L58是L3

    public function read()
{   
    if ($data = xcache_get($this->id))
    {
        $data = $this->gzip ? gzuncompress($data) : $data;
        return unserialize($data);
    }
    return false;
}

非常感谢您的帮助:-)

phpunit正在使用不同的ini文件,该文件不加载此扩展名

尝试从控制台运行php--ini,将其与浏览器的phpinfo()输出进行比较,以查看加载了哪些ini文件(很可能您的web服务器在不同的用户上运行,并且可能有自己的ini文件)

修复它的可能方法:

  1. 编辑cli使用的ini并添加必要的选项
  2. 通过将PHPRC环境变量设置为指向MAMP ini文件
  3. 在php-bin文件夹中创建指向MAMP ini文件的符号链接
  4. 编辑phpunit文件并在php二进制文件后添加-c path/to/ini