2012-03-11 72 views
1

我最近安裝了PHPUnit 3.6.10。PHPUnit Path問題

我不明白什麼是錯的,在php.ini文件中的include_path

正在使用的php.ini文件如下

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 

另一個文件正在使用的Apache2是/etc/php5/apache2/php.ini

我已經改變了包括在cli/php.iniapache2/php.ini

路徑包括路徑其中我寫在php.ini是

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

先前包含路徑是

include_path中=:在/ usr /共享/ PHP的:在/ usr /共享/梨

但錯誤形式的PHPUnit是這樣

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 

這是寫在APITest.php文件

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 

更新2 當我刪除要求,延長化PHPUnit_Framework_TestCase我碰到下面的apache2的記錄錯誤 我發現

[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 
+0

哦,你試圖從Apache內運行PHPUnit?你可以發佈你用來啓動測試運行器的代碼嗎?查看'/ usr/bin/phpunit'和['phpunit.php'](https://github.com/sebastianbergmann/phpunit/blob/3.6/phpunit.php)來查看標準腳本的功能。 – 2012-03-11 11:07:26

+0

命令行現在是一些如何工作正常。但是,從瀏覽器運行時,我得到http 500錯誤。 – naquiuddin 2012-03-11 16:28:28

+0

具體來說,你如何從瀏覽器運行它? – 2012-03-11 22:00:27

回答

1

P HPUnit 3.6擁有自己的自動加載器,負責在不使用require的情況下使所有類都可用。只需在測試中擴展測試用例,而不用擔心PHPUnit。

class MyTest extends PHPUnit_Framework_TestCase { ... } 

更新

當通過瀏覽器運行測試,你繞過phpunit的可執行文件,設置了自動加載磁帶機。添加

require_once 'PHPUnit/Autoload.php'; 

到您的index.php腳本(或任何運行測試)。

+0

請參閱更新後的問題 – naquiuddin 2012-03-11 09:36:19

+0

有關在Apache中運行測試的信息,請參閱我的更新。 – 2012-05-02 21:15:20

+0

感謝您的更新。 – naquiuddin 2012-05-03 05:57:09

0

我不得不在下面給我的php.ini添加:在/ usr /共享/ 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/" 

爲了弄清楚哪裏掛靠我跑

locate Autoload.php 

從中向我指出哪裏PHPUnit的安裝路徑是/ usr /共享/ PHP/PHPUnit的殼,然後在看什麼它試圖包括我的結論我需要添加/ usr/share/php