Risposta breve: per le prove esecuzione prolungata utilizzare un'annotazione per aumentare il tempo di esecuzione consentito:
@large // 10 seconds
@medium // 5 seconds
@small // 1 second max <-- Default, so no point using
risposta Lunghi:
Ecco un set aggiornato di informazioni che è stato derivato con l'aiuto di @Crozin.
Nel mio caso l'errore era che un test richiedeva troppo tempo (> 1 secondo.) (Lo schema + creazione di Doctrine ORM può rallentare le cose, see this ZendCast for what I was doing). Ciò causava un problema (e un po 'di output) da PHP_Invoker. La modalità rigorosa non consente alcun output.
Da lettura/Reverse engineering /usr/share/php/pear/share/pear/PHPUnit/Util/Test.php::getSize() (e getGroups() sulla stessa classe) .. Ho capito sono 3 annotazioni senza documenti che possiamo utilizzare:
@large // 10 seconds
@medium // 5 seconds
@small // 1 second max run time
possono essere specificati a livello di classe o al livello di metodo. Issue #490 on the PHPUnit github suggerimenti su come fornire sia livello di classe che livello di metodo, quindi YMMV se li si mescola. Come ha detto il crozin, i time out assegnati sono rispettivamente di 10,5,1 secondi.
Una soluzione alternativa era di aumentare il tempo di esecuzione di una funzione invocata (sul mio computer lento).
sudo vi /usr/share/php/pear/share/pear/PHP/Invoker.php
Increase line 1 "declare(ticks = 1);" to
"declare(ticks = 10);" // or any higher int that meets your needs
Ecco una serie di informazioni sulla modalità rigorosa che mi ha aiutato a trovare la soluzione:
PHP_Invoker
una classe di utilità per invocare callable con un timeout. Questo pacchetto è necessario per applicare i timeout del test in modalità rigorosa. [PHPUnit Install Instructions]
modalità rigorosa I test che non affermano nulla sono contrassegnati come incompleti di prova che sono incompleti (o saltati) cedere senza copertura del codice Slideshare by Sebastian Bergmann (slide 10)
Nota
prega di notare che PHPUnit inghiotte tutto l'output che è emesso durante l'esecuzione di un test. In modalità rigorosa, un test che emette l'output fallirà. Testing output section of PHPUnit Manual
Modifica il tempo consentito per i test che esegui anche nel file phpunit.xml come descritto qui http://stackoverflow.com/a/13722524/1387163 –