2012-12-25 13 views
5

PHPUnit lavora greate per altri progetti, ma quando sto cercando di eseguire test Yii sto ottenendo il seguente avviso (anche per le prove vuoti):Impossibile installare PHPUnit per lavorare con Yii su Windows

C'era 1 fallimento:

1) Attenzione

Warning: include (PHP_Invoker.php): non è riuscito ad aprire flusso: Nessun file o directory in C: \ Users \ zucca \ Documenti \ GitHub \ arhano \ codebase \ arhanoii \ vendor \ yiisoft \ yii \ framework \ YiiBase.php on line 423

Warning: include(): Failed opening 'PHP_Invoker.php' per l'inclusione (include_path =' .; C: \ Users \ zucca \ Documenti \ GitHub \ arhano \ codebase \ arhanoii \ componen ts ; C: \ Users \ pumpkin \ Documents \ GitHub \ arhano \ codebase \ arhanoii \ models; C: \ xampp \ php \ PEAR ') in C: \ Users \ pumpkin \ Documents \ GitHub \ arhano \ codebase \ arhanoii \ vendor \ yiisoft \ Yii \ framework \ YiiBase.php on line 423

Sembra che devo installare PHPUnit/PHP_Invoker, ma è impossibile, perché richiede PCNTL estensione PHP, wich non è avilabe su Win.

Sai come disattivare questo avviso? È possibile eseguire i test Yii su Windows senza l'utilizzo di PHP_Invoker?

risposta

7

Ecco una soluzione che ha funzionato per me: https://github.com/yiisoft/yii/issues/1907#issuecomment-14519537

Citazione:

  • andato a pear.phpunit.de
  • scaricato manualmente PHP_Invoker classe di utilità
  • decompresso il file su mac di mia figlia (sto usando Windows)
  • metti il ​​regista di "Invoker" Y in C: \ xampp \ php \ pear \ PHP
  • mettere il file "Invoker.php" in C: \ xampp \ php \ pear \ PHP

Sono su una macchina Windows 7 , la decompressione ha funzionato bene. Non avevo bisogno di un mac ...

I test funzionano bene in ogni caso, ma ora non si ottiene il fastidioso lungo "include (PHP_Invoker.php): non è riuscito ad aprire flusso" messaggio ogni volta che un errore occures durante un test.

+0

Grazie, che ha lavorato per me su Windows7 x32. – phemios

+0

Grazie a @ c-cba, il commento che hai indicato ha risolto anche il mio problema. Menzionando per aiutare altri utenti. – Arfeen

0

Il file è (compatibile PSR-0) PHP/Invoker.php, quindi è necessario modificare il YiiBase.php e sostituire il _ con / lì.

0

@cweiske: quella linea è effettivamente utilizzata da autoload() di PHPUnit e pertanto non può essere modificata.

@Alex: Ho lo stesso problema qui, la ragione è che PHP_Invoker di PHPUnit non funziona con Windows, perché dipende da un'estensione chiamata "pcntl" che funziona solo su sistemi UNIX. Poiché il problema deriva da un framework di terze parti in esecuzione su Windows, credo che Sebastian Bergmann non si preoccuperà molto del problema: https://github.com/sebastianbergmann/php-invoker/issues/6

In ogni caso, i test sembrano funzionare bene. Quindi ...

0

Una guida all'installazione phpunit che ha funzionato per me (Windows 7, XAMPP): http://learnyii.blogspot.com/2011/08/how-to-install-phpunit-on-windows.html

al comando promp (come amministratore):

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 

P.S.
Se vengono segnalati errori per PHPUnit_Extensions_Selenium_TestCase uso:

pear install phpunit/PHPUnit_Selenium 

Se vengono segnalati errori per PHPUnit_Extensions_Story_TestCase uso:

pear install phpunit/PHPUnit_Story 
1

seguito this tutorial con un piccolo ritocco lavorato per noi.

Fondamentalmente clona nel repository Invoker. Presumo Invoker ancora non funziona, ma si ferma PHPUnit da erroring:

{ 
    "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": "*" 
    } 
}