2013-06-12 2 views
22

Voglio vedere quale test è attualmente eseguito durante un'esecuzione di phpunit.phpunit --debug mostra ancora solo i punti

Io uso il --debug param, ma ancora solo ottenere punti:

 
$ phpunit --debug 
PHPUnit 3.7.19 by Sebastian Bergmann. 

Configuration read from /home/foo/bar/phpunit.xml 

..S.......I.. 

i contenuti del phpunit.xml:

<phpunit backupGlobals="true" 
    bootstrap="tests/bootstrap.php" 
    backupStaticAttributes="false" 
    cacheTokens="false" 
    colors="true" 
    convertErrorsToExceptions="true" 
    convertNoticesToExceptions="true" 
    convertWarningsToExceptions="true" 
    forceCoversAnnotation="false" 
    mapTestClassNameToCoveredClassName="false" 
    printerClass="PHPUnit_TextUI_ResultPrinter" 
    processIsolation="false" 
    stopOnError="false" 
    stopOnFailure="false" 
    stopOnIncomplete="false" 
    stopOnSkipped="false" 
    testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader" 
    strict="false" 
    verbose="true"> 
    <testsuites> 
    <testsuite name="foo Tests"> 
     <directory>./tests</directory> 
    </testsuite> 
    </testsuites> 
    <filter> 
    <whitelist addUncoveredFilesFromWhitelist="true"> 
     <directory suffix=".php">./src</directory> 
    </whitelist> 
    </filter> 
    <logging> 
    <log type="coverage-clover" target="./clover.xml"/> 
    </logging> 
</phpunit> 

quello che può essere il motivo di questo?

+1

Sei alla ricerca di '--verbose' invece? –

+1

@Denis: stessa uscita. – Alex

+0

Dovresti riformulare la domanda, quindi, poiché non è chiaro cosa vuoi. (L'elenco degli switch è qui, btw: http://phpunit.de/manual/3.6/en/textui.html) –

risposta

10

Ho avuto lo stesso problema e risolto facendo rimuovendo questo:

printerClass="PHPUnit_TextUI_ResultPrinter" 

dalle opzioni del tag base nel file di configurazione phpunit.xml. Non

+0

Per chiarimenti, quando lo imposto nel mio file di configurazione PHPUnit, questo impedisce l'avanzamento del punto predefinito e utilizza solo la registrazione specificata nel file di configurazione. – b01

19

(Rispondendo alla domanda "come vedere quale test attualmente in esecuzione")

Come avete notato --debug e verbose sono di poco aiuto. (. Io uso --verbose maggior parte del tempo, ma perché mi dice ulteriori informazioni quando le cose vanno male, e non è davvero molto verboso il resto del tempo)

Qui è stato il mio primo tentativo:

phpunit --verbose --tap 

L'ho provato su una suite di test che ha alcuni test lenti. Ha funzionato magnificamente fino al test 21, poi niente, poi qualche minuto dopo i test da 22 a 598 sono comparsi in un colpo solo. Sospetto il buffering dell'output. Qui è una variante che non ha questo problema, ma richiede due finestre di terminale aperte:

phpunit --verbose --log-tap tap.log 

Poi in un'altra finestra:

tail -f tap.log 

In realtà non dice esattamente quello che vuoi, perché riporta solo la funzione su cui funziona su. Quindi, quando si ottiene un ritardo, è necessario attendere il completamento del test per scoprire quale è il test lento.

Per ottenere più controllo, considerare writing your own test listener.

+0

Il punto è che su altri sistemi '--debug' funzionava bene ... Ma quelli erano Magento/EcomDev_PHPUnit, no io sono su Symfony2 - forse non proveniva direttamente da PHPUnit? nessun indizio ... – Alex

+0

@Darren, "Ritardi nell'output" non dovrebbe essere considerato un bug? – Pacerier

+0

@Pacerier Non lo so.Il buffering dell'output è probabilmente lì per abilitare alcune importanti funzionalità di phpunit. Penso che se scrivi la tua classe di ascoltatori di test, allora non ci dovrebbe essere alcun ritardo (ma se ci fosse un ritardo sul hook 'startTest' allora sarebbe considerato un bug). –

12

si vuole essere utilizzando --testdox

phpunit --testdox

+1

Questa è la risposta corretta - e dovrebbe essere aumentata di più! (forse gli altri erano corretti?) –