2016-11-05 108 views
0

我遵循mongodb/mongo-php-library官方库PHP7 MongoDB的驱动

$ pecl install mongodb 
$ echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` 

的说明,但是当我尝试使用PHPUnit在此构造函数来执行测试:

use MongoDB\BSON\ObjectID; 

    (...) 

    /** 
    * X constructor. 
    * 
    * @param ObjectID|null $id 
    */ 
    public function __construct(ObjectID $id = null) 
    { 
     if (!$id) { 
      $id = new ObjectID(); 
     } 

     $this->id = $id; 
    } 

    (...) 

我得到这个错误

1) tests\X\X\XTest::testBeConstructed 
Error: Class 'MongoDB\BSON\ObjectID' not found 

编辑

如果我创建的这一行代码测试文件:

<?php 

echo new \MongoDB\BSON\ObjectID(); 

和i相

php test.php 

执行它它表明:

581ddc9c6fb3720352664f11 

SECOND EDIT

正如我在评论中提到的,我在第一行放置了一些调试行ŸPHPUnit测试:

var_dump(extension_loaded('mongodb')); 
echo phpversion().PHP_EOL; 
print_r(get_loaded_extensions()); 

这里是输出

bool(true) 
7.0.8-0ubuntu0.16.04.3 
Array 
(
    [0] => Core 
    [1] => date 
    [2] => libxml 
    [3] => openssl 
    [4] => pcre 
    [5] => zlib 
    [6] => filter 
    [7] => hash 
    [8] => pcntl 
    [9] => Reflection 
    [10] => SPL 
    [11] => session 
    [12] => standard 
    [13] => phpdbg 
    [14] => mysqlnd 
    [15] => PDO 
    [16] => xml 
    [17] => bcmath 
    [18] => calendar 
    [19] => ctype 
    [20] => curl 
    [21] => dom 
    [22] => mbstring 
    [23] => fileinfo 
    [24] => ftp 
    [25] => gd 
    [26] => gettext 
    [27] => iconv 
    [28] => intl 
    [29] => json 
    [30] => exif 
    [31] => mcrypt 
    [32] => mysqli 
    [33] => pdo_mysql 
    [34] => Phar 
    [35] => posix 
    [36] => readline 
    [37] => shmop 
    [38] => SimpleXML 
    [39] => sockets 
    [40] => sysvmsg 
    [41] => sysvsem 
    [42] => sysvshm 
    [43] => tokenizer 
    [44] => wddx 
    [45] => xmlreader 
    [46] => xmlwriter 
    [47] => xsl 
    [48] => Zend OPcache 
) 
PHPUnit 5.6.2 by Sebastian Bergmann and contributors. 

进出口运行使用下面的命令

phpdbg -qrr /root/.composer/vendor/bin/phpunit 

为什么PHPUnit的不承认MongoDB的分机PHPUnit的?

什么即时消失?

感谢

注意:如果你想知道为什么IM根源是因为这是一个码头工人容器

+0

这些命令的输出是什么?我想,你已经以普通用户的身份执行了它们,并且由于权限不足而未安装扩展程序。检查扩展是否已加载:'php -m | grep -i mongo'。 –

+0

@RuslanOsmanov库编译得很好,并安装好。你提到的命令的输出;执行是:mongodb – bitgandtter

+0

您是否在命令行中测试过脚本?也许其他SAPI(Apache,FPM等)从不同的路径加载'php.ini'。 –

回答

0

这是一个真正的新手问题里面,我安装phpdbg后,我编译和安装MongoDB的扩展,所以对于phpdbg安装mongodb扩展未加载。我为它启用它,它工作。