4

コードのテストを書き始めたいので、次のコマンドで最新の PHPUnit をインストールしました

wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit

http://phpunit.de/manual/3.8/en/installation.html

次に、/usr/local/bin を php.ini インクルード パスに追加しました。これは次のようになります。

include_path = ".:/Applications/MAMP/bin/php/php5.4.10/lib/php:/usr/local/bin"

しかし、訪問すると次のエラーが表示されます/my-app/test.php

警告 (2): include(PHPUnit/Autoload.php): ストリームを開けませんでした: そのようなファイルまたはディレクトリはありません [CORE/Cake/TestSuite/CakeTestSuiteDispatcher.php、150 行目]

警告 (2): include() [function.include]: 含めるために 'PHPUnit/Autoload.php' を開けませんでした (include_path='/Users/DevinCrossman/Sites/studio-bliss/lib:.:/Applications/MAMP/bin /php/php5.4.10/lib/php:/usr/local/bin') [コア/Cake/TestSuite/CakeTestSuiteDispatcher.php、150 行目]

に変更しようとし/usr/local/bin/phpunitまし/usr/local/bin/PHPUnitたが、うまくいきませんでした。また、インクルード パスを から/usr/local/binに変更して、 /usr/local/bin/phpunitApache を再起動しようとしました (このマシンで MAMP PRO を使用していますが、ubuntu サーバーでも機能しませんでした)。

aphpinfo()は、インクルード パスが正しく設定されていることを示しています。

それはおそらく私が見逃した明らかなものです。これが機能しない理由を誰か教えてもらえますか?

4

2 に答える 2

2

CakePHP は PEAR を使用して PHPUnit をインストールすることを推奨しています。あなたの場合はうまくいくはずです。

/usr/local/bin に「phpunit」というファイル名で phar を配置することは、phpunit コマンドを使用可能にするため、コマンド ライン経由で PHPUnit のテストランナーを実行することによって使用されることを意味します。例:コマンドの実行:

phpunit MyTest test.php

ブラウザーで実行する場合、インクルード パスに phar へのパスを指定するだけでは機能しない、ロード可能な PHPUnit クラスが必要です。よくわかりませんが、テストファイルに phar を含めればうまくいくかもしれません:

require_once '/path/to/phpunit.phar'
于 2013-08-23T04:02:20.893 に答える
1

appディレクトリでcomposer.jsonを編集または作成します。次の行を追加します。

{
    "require-dev" : {"phpunit/phpunit":"3.7.*"}
}

次に、composerを使用してインストールします。

composer install
于 2014-11-07T23:54:26.997 に答える