79

最近、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 を変更してみました。しかし、それは何もしていません。

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

4

17 に答える 17

123

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

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

以下は古い回答です。ほぼ1年半が経過しましたが、これは既知の問題です。ここでそれについて読んでください

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

あなたがする必要があることはここでカバーされています:

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

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

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/PHP_CodeCoverage
于 2011-05-09T16:26:31.563 に答える
34

OS Xでこの問題が発生しました。次のコマンドを使用して、すべてのphp依存関係を強制的に再インストールしました。これには、まだ構成されていない他のチャネルからのパッケージがいくつか含まれていました。

sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear install --alldeps phpunit/PHPUnit
于 2011-04-25T07:49:02.767 に答える
13

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

特にこのコメントはubuntu 11.04向けで、他の人向けのコメントかもしれません

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

speshu@speshu-laptop:~$ sudo pear アップグレード pear

   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"
于 2011-05-23T06:46:11.657 に答える
8

初めて PEAR を使用する場合は、インクルード パスを適切に構成していない可能性があります。PEAR マニュアルの該当するセクションを参照してください。

于 2009-10-07T00:39:21.977 に答える
4

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
于 2011-05-18T04:22:26.283 に答える
2

見つけた!

PEAR が PHPUnit を /usr/share/pear にインストールしたようです。理由はわかりませんが、それがその場所です。(mt) ものに違いない。

とにかく、準備万端です。助けてくれてありがとう。

于 2009-10-07T01:10:25.667 に答える
2

私の場合、に追加/usr/share/php/PEARすることで解決しましたinclude_path

Ubuntu 10.04.2 を使用しています。

于 2011-02-23T18:32:06.567 に答える
2

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

于 2010-02-06T03:33:08.207 に答える
2

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

include_path に追加しました?

また、ini ファイルとその中の include_path スニペットを確認していただけると助かります...

于 2009-10-06T23:45:16.913 に答える
1

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

  1. インストール梨

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

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

    sudo apt-get install php5-curl 
    pear install phpunit/PHPUnit_Selenium
    
于 2012-04-30T15:07:44.383 に答える
0

私の元々の問題は、コマンドラインバージョンのphp(yuminstallphpまたはyuminstallphp-cli)を=>php5.2.7にアップグレードできないことでした。5.1バージョンでスタックしていました。

私はすでにapacheで使用するためにphp5.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_path = "。:/ var / php5 / lib /php/"のインクルードパスに追加しました。

phpunitはPHP/(キャップ​​に注意)で開始し、コードカバレッジを探しているため、/PHPなしでインクルードパスに追加してください。必要な「PHP/ CodeCoverage/Filter.php」を開くことができませんでした。

于 2011-10-19T19:54:00.920 に答える
0

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

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

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

/etc/php5/cli/php.ini

php.ini ファイルは、Apache に使用される php.ini ではなく、php CLI (コマンド) 用のものであることに注意してください。

于 2011-08-01T03:52:16.290 に答える
0

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

于 2012-05-04T06:19:21.470 に答える
0

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

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

つまり、パスを定義してからphpunitを再インストールします

于 2013-01-04T19:50:37.343 に答える
0

Ubuntu 12.04:

sudo pear channel-discover pear.symfony.com
sudo pear install --alldeps phpunit/PHPUnit
于 2013-09-19T09:51:20.300 に答える