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根源是因为这是一个码头工人容器
这些命令的输出是什么?我想,你已经以普通用户的身份执行了它们,并且由于权限不足而未安装扩展程序。检查扩展是否已加载:'php -m | grep -i mongo'。 –
@RuslanOsmanov库编译得很好,并安装好。你提到的命令的输出;执行是:mongodb – bitgandtter
您是否在命令行中测试过脚本?也许其他SAPI(Apache,FPM等)从不同的路径加载'php.ini'。 –