运行phpunit时找不到致命错误'File/Iterator/Autoload.php'

pea*_*oft 26 php phpunit unit-testing

当我试图在phpunit中运行testclass时,我收到此错误.

C:\xampp\htdocs\unittest>phpunit UnitTest usertest.php
PHP Warning:  require_once(File/Iterator/Autoload.php): failed to open stream No such file or directory in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45
PHP Stack trace:
PHP   1. {main}() C:\xampp\php\phpunit:0
PHP   2. require() C:\xampp\php\phpunit:41

Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45

Call Stack:
    0.0004     325352   1. {main}() C:\xampp\php\phpunit:0
    0.0026     366520   2. require('C:\xampp\php\pear\PHPUnit\Autoload.php')xampp\php\phpunit:41

PHP Fatal error:  require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45
PHP Stack trace:
PHP   1. {main}() C:\xampp\php\phpunit:0'
Run Code Online (Sandbox Code Playgroud)

谁能解决这个问题?

注意:我使用的是Windows 7.

谢谢,

小智 23

可能发生这种情况的一个原因是您的php include_path未正确设置.请确保您有适当的PEAR路径.对于我的WAMP安装,它将是:

include_path=".;C:\wamp\bin\php\php5.3.8\PEAR\PEAR"
Run Code Online (Sandbox Code Playgroud)

但是,您的系统很可能会有所不同.

请注意,您需要更新apache php.ini以及PHP安装文件夹中的php.ini.CLI默认的php.ini和Web请求(通常是您可能使用PEAR包的其他软件)将使用apache php.ini.

希望这可以帮助.

  • 这正是它对我而言,虽然直到我[RTFM](http://pear.php.net/manual/en/installation.checking.php)我才意识到这一点.作为旁注,`;`用于windows,`:`用于osx/unix作为dir seperator. (3认同)

edo*_*ian 10

您的phpunit安装已损坏.对此最简单的解决方法是

pear install --force --alldeps phpunit/phpunit
Run Code Online (Sandbox Code Playgroud)

看看是否有效.

您将需要最新的梨版1.9.4.如果您没有该版本,请使用go-pear.phar.如果您从xammp运行某些东西,请不要尝试修复它们发运的梨装置.通常,重新安装它会更容易.

如果您愿意,也可以尝试安装缺少的包:

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

(添加一个--forceif pear告诉你它已经安装)


d g*_*d g 7

检查pear配置帮我找到了这个快速:

bash-3.2# pear config-show | grep php_dir
PEAR directory                 php_dir          /usr/local/pear/share/pear

bash-3.2# vi /etc/php.ini
include_path = ".:/php/includes:/usr/local/pear/share/pear"
Run Code Online (Sandbox Code Playgroud)