2010-11-13 128 views
0

我已經安裝了PHPUnit並檢查了我的PEAR設置,一切都很順利。我正在使用Yii作爲我的框架,而我正在使用Linux共享服務器。當我運行一個測試(任何測試)時,我會得到下面的錯誤。從我可以告訴我想我需要將以下添加到我的路徑設置:PHPUnit和Yii共享服務器上

/home/myname/php/ 

,因爲這是兩個PHP和PHPUnit文件夾的位置。我無法修改php.ini文件,因爲我在共享服務器上。我想知道這是否真的是問題,如果其他人已經找到並解決共享環境中的這個問題?

/protected/tests/unit]# phpunit dbTest.php 
X-Powered-By: PHP/5.2.9 
Content-type: text/html 

<br /> 
<b>Warning</b>: require_once(PHPUnit/Util/Filter.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /home/myname/bin/phpunit on line 40<br /> 
<br /> 
<b>Fatal error</b>: require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'PHPUnit/Util/Filter.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/myname/bin/phpunit on line 40 

回答

0

檢查您的PHPUnit在/ usr/lib中/ PHP/PHPUnit的,ortherwise存在,你必須包括在php.ini的PHPUnit的人生路。

檢查加載的配置文件(php.ini中)使用的是帶有

php --ini

把PEAR目錄 「包含路徑」 行。

+0

因爲我在共享服務器上,所以PHPUnit存在於/ home/myname/php/PHPUnit中。我無法寫入/ usr/lib/php,並且PHPUnit在那裏不存在。 PEAR安裝正確,位於php.ini文件中。這是默認的。我無權訪問更改服務器的php.ini文件。 – Joe 2010-11-13 17:57:35

1

很多考驗和磨難我想通了之後。希望這可以幫助別人。

由於我在共享服務器上,我無法調整include_path。它不會使用.htaccess文件,因爲phpunit是從命令行運行的,並且不會調用.htaccess文件。因此,如果你遇到和phpunit一樣的問題,那麼在.htaccess中設置include路徑是徒勞的。

我現在能夠通過phpunit測試運行的唯一路徑是/ home/myname/php。這是因爲我的PHPUnit文件自動安裝在/ home/myname/php/PHPUnit中。

當運行從/家/ MYNAME/PHP中的PHPUnit的測試,我會得到一個錯誤,說明

File &quot;/home/... &quot; could not be found

在這一點上,我發現我需要升級PHPUnit的,這反過來又提升了許多它的依賴關係(CodeCoverage,Selenium和其他)。升級PHPUnit的命令是從/ home/MYNAME/PHP目錄

pear upgrade phpunit/PHPUnit 

現在我可以成功運行測試,它的工作原理。如果我從任何其他文件夾運行測試,它將失敗,因爲它正在搜索include_path目錄,並且/ home/myname/php不是這些路徑之一。