2013-05-20 83 views
1

我需要在Ubuntu盒子上爲web dev項目安裝PHPUnit,但存在嚴重問題。從各種渠道利用的建議,我已經通過pear安裝並試用了以下內容:PHPUnit和Ubuntu - 使用PEAR安裝後包含路徑的問題

  • 目前,phpunit --version回報

    PHPUnit 3.7.20 by Sebastian Bergman 
    

/usr/share但引發錯誤在其他地方。

  • include path

    include_path = ".:/usr/share/php:/usr/share/php/PEAR:/usr/share/php/File/Iterator" 
    
  • 我試着從簡單/usr/share/php以上完整的字符串不同的變化。 PEAR是全部大寫,因爲這是它在文件夾中。

  • 與一個測試用例結果執行

    PHP Warning: require_once(File/Iterator/Autoload.php): failed to open stream: 
    No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 64 
    PHP Stack trace: 
    PHP 1. {main}() /usr/bin/phpunit:0 
    PHP 2. require() /usr/bin/phpunit:43 
    PHP Fatal error: require_once(): Failed opening required 
    'File/Iterator/Autoload.php'(include_path='/usr/share/php/libzend-framework-php') 
    in /usr/share/php/PHPUnit/Autoload.php on line 64 
    
  • pear list -c phpunit回報

    Installed packages, channel pear.phpunit.de: 
    ============================================ 
    Package   Version State 
    File_Iterator  1.3.3 stable 
    PHPUnit   3.7.20 stable 
    PHPUnit_MockObject 1.2.3 stable 
    PHP_CodeCoverage 1.2.10 stable 
    PHP_Invoker  1.1.2 stable 
    PHP_Timer   1.0.3 stable 
    PHP_TokenStream 1.1.5 stable 
    Text_Template  1.1.2 stable 
    
  • 我已經證實,Autoload.php同時存在於php/PHPUnit/php/File/Iterator/

  • 我裝php.ini文件是`/etc/php5/cli.php.ini1由

    php --info | grep "onfiguration" 
    

任何其他建議,將不勝感激驗證。

+0

將'/ usr/share'添加到包含路徑 – Orangepill

+0

您可能會在[AskUbuntu](http://askubuntu.com/)上得到更快或更好的答案。 –

+0

@Orangepill,沒有工作。 – Jason

回答

2

搜索計算機上的文件,該文件被稱爲Autoload.php,並在文件結構是這樣的: ../File/Iterator/Autoload.php

現在打開拋出錯誤(/usr/share/php/PHPUnit/Autoload.php你的情況)文件,包括set_include_path聲明指向該文件的絕對路徑。

您似乎有一個非常類似的問題,我在Mac OSX上遇到的問題。欲瞭解更多信息請看這very similar question。如果所有這些都不起作用,請嘗試使用Composer進行安裝,我聽說它沒有這個問題。

0

對於最近的項目,我使用Composer來安裝PHPUnit和其他相關工具。這是很容易:

## ... rest of the composer.json file 
# "php -f composer.phar update --dev" to install 

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

我也然後有一個shell腳本實際運行從安裝到本地安裝的腳本的鏈接./vendor/bin/目錄PHPUnit命令行工具。

0

Alister的回答,依靠Composer, 但我更喜歡在我的項目在全球部署更新PHPUnit

composer.phar global require "phpunit/phpunit=dev-master" 

這樣,當我在我的symfony項目的根目錄,我可以只運行

~/.composer/vendor/bin/phpunit -c app/ -v --filter testFireNotifications |tee phpunit.log 

--filter最後一點是要選擇運行的東西(其實,更快速的網絡部門自動化通過crontab,比測試...)

即使在當前的Ubuntu 14.04.2服務器,回購卡住了一個過時的PHPUnit 3.7.28「穩定」,所以我回避操作系統提供一個這個習俗安裝不會衝突(我沒有把~/.composer/vendor/bin放在我的路徑)。