phpunit - 错误的路径

dav*_*avs 7 php terminal phpunit zend-framework path

有人知道我做错了什么吗?我已经安装了phpunit,当我在/ opt/local/PEAR目录下时一切都很好,所以如果我去/ opt/local/PEAR目录并运行phpunit,我会得到:

Sebastian Bergmann的PHPUnit 3.5.11.
用法:phpunit [开关] UnitTest [UnitTest.php]
phpunit [开关]
blablabla

但如果我在另一条路上,我会得到:

警告:require_once(PHP/CodeCoverage/Filter.php):无法打开流:第38行的/ usr/local/bin/phpunit中没有此类文件或目录

致命错误:require_once():在第38行的/ usr/local/bin/phpunit中打开所需的'PHP/CodeCoverage/Filter.php'(include_path ='.:/ usr/lib/php')失败

我知道我的PATH有问题.我该如何解决?

bri*_*n_d 8

尝试添加/opt/local/PEAR到您的php.ini文件include_path.

//Before:
include_path='.:/usr/lib/php'
//After:
include_path='.:/usr/lib/php:/opt/local/PEAR'
Run Code Online (Sandbox Code Playgroud)

您可能还需要重新启动Web服务器才能使更改生效.

正如RobertPitt评论的那样,这也可以在运行时完成而无需访问php.ini文件.

<?php
$path = '/opt/local/PEAR';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>
Run Code Online (Sandbox Code Playgroud)


Ek *_*mos 7

用于分发PHPUnit的PEAR通道(pear.phpunit.de)需要在本地PEAR环境中注册.此外,PHPUnit所依赖的组件托管在其他PEAR通道上.

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
Run Code Online (Sandbox Code Playgroud)

这只需要进行一次.现在,PEAR安装程序可用于从PHPUnit通道安装包:

pear install phpunit/PHPUnit
Run Code Online (Sandbox Code Playgroud)


小智 5

在Ubuntu中,我用过

pear config-set auto_discover 1
pear install pear.phpunit.de/PHP_CodeCoverage
Run Code Online (Sandbox Code Playgroud)