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'
誰かがこれに対する解決策を与えることができますか?
注:私はWindows 7を使用しています。
おかげで、
これが発生する理由として考えられるのは、php include_pathが正しく設定されていないことです。 PEARへの適切なパスが利用可能であることを確認してください。私のWAMPインストールの場合、次のようになります。
include_path=".;C:\wamp\bin\php\php5.3.8\PEAR\PEAR"
ただし、システムによって異なる可能性があります。
補足として、Apache php.iniと、PHPインストールフォルダーにあるphp.iniの両方を更新します。CLIのデフォルトのphp.iniとWebリクエスト(また、PEARパッケージ用)を使用している他のソフトウェアは、Apache php.iniを使用することがよくあります。
お役に立てれば。
Phpunitのインストールが壊れています。これに対する最も簡単な修正は
pear install --force --alldeps phpunit/phpunit
うまくいったかどうかを確認します。
最新の梨バージョンが必要です1.9.4
。そのバージョンがない場合は go-pear.phar
。何かのためにxammpから実行している場合は、出荷されているpearのインストールを修正しないでください。通常は、再インストールする方が簡単です。
必要な場合は、不足しているパッケージをインストールすることもできます。
pear install phpunit/File_Iterator
(--force
pearがすでにインストールされていることを通知した場合)
Pear configをチェックすると、この迅速な検索に役立ちました。
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"
2日間の投稿を読んだ後、最後にガイドで解決しました:
Phpunitの保持/破損したインストールによってPCをクリーンアップ [〜#〜] link [〜#〜]
このガイドで再インストール [〜#〜] link [〜#〜]
私がこれで読んだあらゆる種類の素晴らしいもの。最初にAutoload.phpの場所を確認します。使用する:
$ find . -name 'Autoload.php' -type f
私はあなたのファイルが次の場所にあると想定しています:
/usr/local/pear/share/pear
Apple OSX 10.8.4 MAMPとMAMP-PROがインストールされており、他にもいくつかのPHPインストール済みです。
最後のものについて、私は次のことを行いました:まず、ディレクトリにphp.iniがあるかどうかを確認します:/private/etc
そうでない場合は、次のようにします。
$ Sudo cp /private/etc/php.ini.default /private/etc/php.ini
'php.ini'ファイルの下部に次の行を追加します。
; *** Added by <your-name> ****
include_path=".:/usr/local/pear/share/pear"
; *** Ended addition ****
できました。
私にとっての修正は簡単でした(Ubuntu 12.04)。最初に、ファイルが存在し、その場所を確認するために検索を行いました。
locate Autoload.php
これは次のような結果を返すはずです:
/usr/share/php/File/Iterator/Autoload.php
/usr/share/php/PHP/CodeCoverage/Autoload.php
/usr/share/php/PHP/Depend/Autoload.php
/usr/share/php/PHP/Invoker/Autoload.php
/usr/share/php/PHP/Timer/Autoload.php
/usr/share/php/PHP/Token/Stream/Autoload.php
/usr/share/php/PHPCPD/Autoload.php
/usr/share/php/PHPUnit/Autoload.php
/usr/share/php/PHPUnit/Framework/MockObject/Autoload.php
/usr/share/php/PHP_CodeBrowser/Autoload.php
/usr/share/php/Text/Template/Autoload.php
次に、/ etc/php5/Apache2/php.iniに正しく設定されているinclude_pathを確認しましたが、/ etc/php5/cli/php.ini(コマンドラインインターフェース)ではまだコメント化されていました。
この行のコメントを外すとうまくいきました:
include_path = ".:/usr/share/php:/usr/include/php5"
かなり基本的なことは知っていますが、新しいマシンをセットアップするときは常にささいなことです;-)
組み込みのサーバー構成を使用して、OSX 10.6でPhP 5.3を使用すると、同じ問題が発生しました。
PHPUnitが/ usr/lib/phpに正常にインストールされている間に、Autoload.phpがPearディレクトリではなく現在のディレクトリ(/ usr/lib/php/PHPUnit)からFile Iteratorをロードしようとしている(45行目)ことに気づきました(/ usr/lib/php/File)にインストールしていました。これはPearインストーラーのバグですか?
単純なln -s/usr/lib/php/File/usr/lib/php/PHPUnit/Fileは問題を解決しました。
Ubuntu 14.04を使用していますが、Ubuntu Software Center経由でphpunitをインストールしましたが、機能しませんでした。
最後にそれを削除し、 here の指示に従いました
wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
Sudo mv phpunit.phar /usr/local/bin/phpunit
エラーを見てください:
(include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php
Xamppはinclude_path .;C:\php\pear
でそのファイルを見つけようとしていますが、梨のパスは.;C:\xampp\php\pear
です。
ナシの正しいパスを設定し、それが動作します。作りました.
Windows 7とxampp(php 5.6.11)で同じ問題が発生しました。pearとphpunitをすべて再インストールしようとしましたが、機能しませんでした。 C:\ xammp\php\pearディレクトリの権限を確認したところ、読み取り専用でした。権限を変更した後、機能し始めました。
また、open-serverバンドルを使用すると、include_pathが短すぎると報告されることがわかります。
これをWindows 7で修正するには、次のようにします
cd c:\Windows
mklink php.ini c:\OpenServer\userdata\temp\config\php.ini