web-dev-qa-db-ja.com

phpunit require_once()エラー

最近、pearインストーラーを使用してphpunitをサーバーにインストールしました。

テストを実行すると、次のエラーが表示されます。

PHP警告:require_once(PHPUnit/Util/Filter.php):ストリームのオープンに失敗しました:44行目の/ usr/bin/phpunitにそのようなファイルまたはディレクトリがありません

PHPの致命的なエラー:require_once():44行目の/ usr/bin/phpunitで必要な 'PHPUnit/Util/Filter.php'(include_path = '。:/ usr/bin/php')を開くことに失敗しました

いくつかの検索を行った後、サーバー上のphp.iniファイルのinclude_pathを変更しようとしました。しかし、それは何もしていません。

何がこれを引き起こしているのでしょうか?

78
user185305

更新:2013年11月およびUbuntu 12.04の時点で、これら2つのコマンドで十分です。

Sudo pear config-set auto_discover 1
Sudo pear install pear.phpunit.de/PHPUnit

以下は古い回答です。これは既知の問題ですが、ほぼ1年半が経過しました。ここで読む

phpunitが正しく機能するためには、コードカバレッジをインストールする必要があります

ここで必要なことは次のとおりです。

PEARによるコードカバレッジインストール

基本的には、入力する必要があります(権限がない場合は、Sudoを使用して、phpunitが既にインストールされているとみなします):

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/PHP_CodeCoverage
123
arunas_t

OS Xでこの問題が発生しました。すべてのphp依存関係を強制的に再インストールする次のコマンドを使用して修正しました。

Sudo pear channel-discover pear.symfony-project.com
Sudo pear channel-discover components.ez.no
Sudo pear install --alldeps phpunit/PHPUnit
34
Steven Green

https://bugs.launchpad.net/ubuntu/+source/phpunit/+bug/701544

そして、特にubuntu 11.04のこのコメントは、他の一部の人にも当てはまるかもしれません

上記の手順を実行したにもかかわらず、動作しませんでしたが、梨を1.9.1から1.9.2にアップグレードした後は、これを実行するだけで完全に動作します

speshu @ speshu-laptop:〜$須藤梨アップグレード梨

   downloading PEAR-1.9.2.tgz ...
   Starting to download PEAR-1.9.2.tgz (295,120 bytes)
    .....................................................done: 295,120 bytes
    upgrade ok: channel://pear.php.net/PEAR-1.9.2
    PEAR: Optional feature webinstaller available (PEAR's web-based installer)
    PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
    PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)
    PEAR: To install optional features use "pear install pear/PEAR#featurename"
13
jspeshu

PEARを初めて使用する場合は、インクルードパスの権利を構成していない可能性があります。 PEAR manual の適切なセクションをご覧ください。

8
jeroen

https://github.com/sebastianbergmann/php-code-coverage

sb@ubuntu ~ % pear channel-discover pear.phpunit.de
Adding Channel "pear.phpunit.de" succeeded
Discovery of channel "pear.phpunit.de" succeeded

sb@ubuntu ~ % pear channel-discover components.ez.no
Adding Channel "components.ez.no" succeeded
Discovery of channel "components.ez.no" succeeded

sb@vmware ~ % pear install phpunit/PHP_CodeCoverage
downloading PHP_CodeCoverage-0.9.0.tgz ...
Starting to download PHP_CodeCoverage-0.9.0.tgz (108,376 bytes)
.........................done: 108,376 bytes
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-0.9.0
4
stanleyhlng

これは、古いまたは不完全なPHPUnitインストールがある場合にも発生します。 PEARをセットアップした後、最新のパッケージを取得するために PHPUnit.de channel を追加する必要があることに注意してください。

2
Josh Koenig

(include_path = '。:/ usr/bin/php')

sure include_pathに追加しましたか?

Iniファイルとinclude_pathスニペットを見た場合にも役立つかもしれません...

2
meder omuraliev

見つけた!

PEAR PHPUnitを/ usr/share/pearにインストールしました。理由はわかりませんが、それがどこにあるかです。(mt)のものでなければなりません。

とにかく、私はすべて設定されています。助けてくれてありがとう。

2
user185305

私の場合、/usr/share/php/PEARinclude_pathを追加して解決しました。

Ubuntu 10.04.2を使用しています。

2
Marcelo

コンポーネントへのアクセスに問題がある場合は、別の方法を試してください。

  1. ナシをインストール

    Sudo apt-get install php-pear
    
  2. Pearを使用してphpunitをインストールします。

    pear config-set auto_discover 1
    pear install pear.phpunit.de/PHPUnit
    
  3. phpunit/Seleniumをインストールしますが、最初にcurlモジュールをインストールする必要があります

    Sudo apt-get install php5-curl 
    pear install phpunit/PHPUnit_Selenium
    
1
denz

私は同じ問題を抱えていました。 Netbeansは、phpunitのバージョンが古すぎる(古くない)と報告していました。 phpunitスクリプトを実行すると、上記のメッセージが直接表示されました。

私はそれを追加して解決しました:

include_path=".:/usr/share/php"

宛先/ etc/php5/cli/php.ini

php.iniファイルは、Apacheに使用されるphp.iniではなく、php CLI(コマンド)のファイルです!

0
lepe

Windows 8でも同じ問題が発生しました。トップの回答と同様に、コマンドラインを起動する必要がありましたが、cmd.exeを管理者として実行を確認してください。次に、2つのコマンド

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit
0
Moak

私の元の問題は、PHPのコマンドラインバージョン(yum install phpまたはyum install php-cli)を取得して=> php5.2.7にアップグレードできないことでした

Apacheで使用するためにphp 5.3.3を既にコンパイルしました。そこで、/ usr/bin/php(コマンドラインのデフォルト)から/ var/php5/bin/phpのコンパイル済みバージョンへのシンボリックリンクを設定して、コマンドラインphpレポート5.3.3を取得します。

その後、phpunitのpearのインストール手順を再フォローしました

ただし、phpunitを実行したときは、コードカバレッジが必要でした。

そこで、/ var/php5/lib/php/PHP/CodeCoverageの下でコードカバレッジを探し、php.iniのincludeパスにinclude_path = "。:/ var/php5/lib/php /"を追加しました。

PhpunitはPHP /(notice caps)で開始するため、/ PHPなしでインクルードパスに追加してください。コードカバレッジの検索に失敗しました 'PHP/CodeCoverage/Filter.php'

0
user1003932

この問題がありました。私はzendフレームワークサイトを開発していました。最後に、zendのインストールを削除し、Apacheとcliのphp.iniファイルを削除して、インクルードパスを削除することで解決します。 zendでサイトを開発するために、zendをインストールする必要はありません。ライブラリをサイトフォルダーにコピーできます

0
Ruwantha

私にとっては、テストを複数のバッチに分割することが役立ちました。

0
amitchhajer

PEARで環境変数を再定義することにより、この問題を解決できます。これが私が問題を解決した方法であり、Ubuntu 12.10を使用しました

http://rkrants.blogspot.in/2013/01/installing-phpunitpear-in-ubuntu-1210.html

要するに、パスを定義してからphpunitを再インストールします

0

Ubuntu 12.04:

Sudo pear channel-discover pear.symfony.com
Sudo pear install --alldeps phpunit/PHPUnit
0
RBalazs