2012-03-11 29 views
1

最近、PHPUnit 3.6.10がインストールされました。PHPUnitパスの問題

私はphp.iniファイルでのinclude_pathと間違っているかを理解していない

Configuration File (php.ini) Path: /etc/php5/cli 
Loaded Configuration File:   /etc/php5/cli/php.ini 
Scan for additional .ini files in: /etc/php5/cli/conf.d 
Additional .ini files parsed:  /etc/php5/cli/conf.d/curl.ini, 
/etc/php5/cli/conf.d/mysql.ini, 
/etc/php5/cli/conf.d/mysqli.ini, 
/etc/php5/cli/conf.d/pdo.ini, 
/etc/php5/cli/conf.d/pdo_mysql.ini 

を次のように使われているのphp.iniファイルがあるのApache2によって使用されている他のファイルは/etc/php5/apache2/php.ini

です

私はザ・パスを含むcli/php.iniおよびapache2/php.ini両方のパスを含む

を変更しましたこれは私は、php.iniに書いた

include_path = ".:/home/username/pear/share/pear:/usr/share/php 

以前にインクルードパス=

のinclude_pathだっ含まれている:。は、/ usr/share/PHP:を/ usr/share /梨

が、エラーフォームのPHPUnitをこれはAPITest.phpファイルに書き込まれ

PHP Warning: require_once(PHPUnit/Framework.php): failed to open stream: No such file or directory in /home/username/public_html/PHP-Library/APITest.php on line 14 
PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Framework.php' (include_path='.:/home/username/pear/share/pear') in /home/username/public_html/PHP-Library/APITest.php on line 14 

この方法はある

require_once 'PHPUnit/Framework.php'; 

誰でも問題の内容を説明できますか?私がphp.iniに変更を加える必要がある他の場所はありますか?

更新

私は、コマンドの下

$ php -c /path/to/php.ini -r 'echo get_include_path()."\n";' 
.:/usr/share/php:/usr/share/pear 

を実行したときに、私はPHPUnit_Framework_TestCaseをを必要とし、延長削除すると、更新2 は私が

[Sun Mar 11 14:54:58 2012] [error] [client 127.0.0.1] PHP Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /home/username/public_html/phplib/APITest.php on line 15 
を発見したapache2のログに次のエラー を取得します
+0

ああ、あなたはApache内からPHPUnitを動こうとしているのですか?テストランナーを開始するために使用しているコードを投稿できますか? '/ usr/bin/phpunit'と' 'phpunit.php'(https://github.com/sebastianbergmann/phpunit/blob/3.6/phpunit.php)を見て、標準スクリプトが何をしているのかを見てください。 –

+0

コマンドラインがうまく動作するようになりました。しかし、ブラウザから実行すると、私はHTTP 500エラーを取得します。 – naquiuddin

+0

具体的には、ブラウザからどのように実行していますか? –

答えて

1

P HPUnit 3.6には、requireを使用せずにすべてのクラスを使用可能にする独自のオートローダーがあります。 PHPUnitを気にせずにテストでテストケースを拡張するだけです。

class MyTest extends PHPUnit_Framework_TestCase { ... } 

更新

ブラウザを介して、あなたのテストを実行するときは、オートローダを設定phpunit実行ファイルをバイパスしています。あなたのindex.phpスクリプト(またはテストを実行するもの)に、

require_once 'PHPUnit/Autoload.php'; 

を追加します。

+0

更新された質問 – naquiuddin

+0

を参照してください。Apache内でのテストの実行に関する私の更新を参照してください。 –

+0

更新いただきありがとうございます。 – naquiuddin

0

私は自分のphp.iniに以下を追加する必要がありました:を/ usr/share/PHP/

文字列全体は、/ etc/PHP5/apache2の/ PHPで次のようになります。INI:

".:/usr/bin/php:/var/www/cakephp2/lib/:/var/www/cakephp2/:/usr/bin/phpunit:/usr/bin/pear:/usr/share/php/" 

はそれをリンクする場所を把握するために、私はPHPUnitのは、/ usr /共有/ PHP/PHPUnitのに設置された場所に私を指摘シェルから

locate Autoload.php 

を実行してから見てどのようなそれは私が/ usr/share/phpを追加する必要があると結論付けることを試みていた