2012-12-25 17 views
5

PHPUnit的工作馬麗娟用於其他項目,但是當我試圖運行Yii的測試,我發現了以下警告(即使是空的測試):無法設置PHPUnit的Windows上使用Yii的工作

有1次失敗:

1)警告

警告:包括(PHP_Invoker.php):未能打開流:沒有這樣的文件或 目錄 C:\用戶\南瓜\文檔\ GitHub的\ arhano \ codebase \ arhanoii \ vendor \ yiisoft \ yii \ framework \ YiiBase.php 上線423

警告:包括():失敗開口 'PHP_Invoker.php' 列入 (include_path中=」; C:\用戶\南瓜\文件\ GitHub的\ arhano \代碼庫\ arhanoii \ componen TS ; C:\ Users \ pumpkin \ Documents \ GitHub \ arhano \ codebase \ arhanoii \ C:\ Users \ pumpkin \ Documents \ GitHub \ arhano \ codebase \ arhanoii \ models; C:\ xampp \ php \ PEAR') 供應商\ yiisoft \警予\框架\ YiiBase.php上線423

貌似我必須安裝PHPUnit/PHP_Invoker,但它是不可能的,因爲它需要了pcntl PHP擴展,至極沒有在Win avilabe。

你知道如何靜音此警告嗎?是否可以在不使用PHP_Invoker的情況下在Windows上運行Yii測試?

回答

7

這裏是爲我工作的解決方案: https://github.com/yiisoft/yii/issues/1907#issuecomment-14519537

報價:

  • 去pear.phpunit.de
  • 手動下載PHP_Invoker實用類
  • 將文件解壓縮到我女兒的mac上(我正在運行Windows)
  • 把「Invoker」導演Ÿ℃在:\ XAMPP \ PHP \梨\ PHP
  • 把下C 「Invoker.php」 文件:\ XAMPP \ PHP \梨\ PHP

我是Windows 7機器上,解壓縮效果很好。不需要Mac ...

測試在任何情況下運行良好,但現在我沒有得到惱人的長 「包括(PHP_Invoker.php):未能打開流」 消息每次測試期間發生錯誤occures。

+0

謝謝,它在windows7 x32上爲我工作。 – phemios

+0

謝謝@ c-cba,你指出的評論也解決了我的問題。提到幫助其他用戶。 – Arfeen

0

該文件是(PSR-0兼容)PHP/Invoker.php,所以您需要更改YiiBase.php並將_替換爲/

0

@cweiske:該行實際上由PHPUnit的autoload()使用,因此無法更改。

@Alex:我在這裏有同樣的問題,原因是PHPUnit的PHP_Invoker不能在Windows上工作,因爲它取決於名爲「pcntl」的擴展名,它只能在UNIX系統上工作。由於問題來自運行在Windows上的第三方框架,我相信Sebastian Bergmann不會在意這個問題:https://github.com/sebastianbergmann/php-invoker/issues/6

無論如何,測試似乎運行良好。所以......

0

一個PHPUnit的安裝指南,爲我工作(Windows 7中,XAMPP): http://learnyii.blogspot.com/2011/08/how-to-install-phpunit-on-windows.html

命令promp(如管理員)

pear channel-update pear.php.net 
pear upgrade-all 
pear channel-discover pear.phpunit.de 
pear channel-discover components.ez.no 
pear channel-discover pear.symfony-project.com 
pear update-channels 
pear install -a -f phpunit/PHPUnit 

附:
如果出現錯誤的PHPUnit_Extensions_Selenium_TestCase使用:

pear install phpunit/PHPUnit_Selenium 

PHPUnit_Extensions_Story_TestCase使用如果出現錯誤:

pear install phpunit/PHPUnit_Story 
1

有小的調整,繼this tutorial爲我們工作。

它基本上克隆在Invoker回購。我認爲Invoker仍然不能工作,但它會阻止PHPUnit出錯:

{ 
    "repositories": [ 
     { 
      "type": "composer", 
      "url": "http://packages.phundament.com" 
     }, 
     { 
      "type": "package", 
      "package": { 
       "name": "phpunit/php-invoker", 
       "version": "1.1.3", 
       "source": { 
        "type": "git", 
        "url": "http://github.com/sebastianbergmann/php-invoker", 
        "reference": "master" 
       }, 
       "autoload": { 
        "classmap": [ 
         "src/" 
        ] 
       } 
      } 
     } 
    ], 
    "require-dev": { 
     "phpunit/phpunit": "4.1.*", 
     "phpunit/phpunit-selenium": "*", 
     "phpunit/phpunit-skeleton-generator": "*", 
     "phpunit/dbunit": "*", 
     "phpunit/phpunit-story": "*", 
     "phpunit/php-invoker": "*", 
     "phpunit/phpunit-mock-objects": "*" 
    } 
} 
相關問題