2013-02-25 22 views
24

Sto riscontrando qualche problema con phpunit. Quando eseguire un test, phpunit dammi questi avvertimenti:Laravel 4 Nessun test trovato in TestCase

1) Attenzione Nessun test trovato in classe "Illuminate \ Foundation \ Testing \ TestCase".

2) Avviso Nessun test trovato nella classe "TestCase".

Ma mi piacerebbe ignorare questi file, in modo che phpunit non cercherà di eseguire i test da loro.

Come fare?

risposta

47

Speriamo che da ora si trovano la risposta, ma se non si dispone di questo potrebbe aiutare:

Hmm - fare in modo che i nomi di file e di classe tutti i match in su. Per esempio , nessuna classe FooTest con un nome file di BarTest.php.

Inoltre, sei sicuro di avere un file * Test.php all'interno della directory app/test ?

[...]

che è stato, vale a dire uno dei miei test ha avuto un errore di battitura nel nome di classe nome del file-vs-. Strano che l'errore di battitura faccia un avvertimento nelle classi TestCase e invece di contrassegnare la classe che lo ha effettivamente causato.

Da: https://laracasts.com/forum/?p=83-warnings-for-testcase-illuminate-foundation-testing-testcase/0

In sostanza, assicurarsi che i nomi di file e nomi di classe corrispondono. Anche io stavo sbattendo la testa su questo.

+0

Può verificarsi anche se testcase (metodo) non inizia con il test di lavoro. – Braders

+2

Il collegamento è morto (motivo per cui i link nelle risposte SO sono una cattiva idea). – Roscius

+10

Suggerimento: rendere la classe base (in questo caso denominata TestCase) una classe astratta. – DerLola

41

Un'ulteriore soluzione potrebbe essere quella di rendere astratta la classe di TestCase. Facendo così, PHPUnit non tenterà di trovare alcun test al suo interno.

abstract class TestCase {

+0

Questa risposta salva la mia giornata di oggi. Grazie mille @Derlola –

+0

Salvato anch'io. PHPunit si è lamentata dei test in classe base in cui è stato impostato l'ambiente –

+0

grazie per aver effettivamente risposto alla domanda .. –

4

Per me, il problema era che il nome della classe non corrisponde il nome del file, in modo da una classe definita come

class ExampleTest { 

non è stato nominato exampleTest.php.

Se ci sono alcuni file di test che si vorrebbe ignorare, poi andare nel file phpunit.xml e dentro

<testsuite name="Application Test Suite"> 
    <directory></directory> 
</testsuite> 

sostituire i tag directory con tag e specificare il file test specifico che si desidera utilizzare.

0

Per me, ho avuto un errore di convenzione. La soluzione stava cambiando il nome della classe e il file, da TestFoo a FooTest.

0

Anche io stavo affrontando lo stesso problema. Ho controllato che il nome del mio file e il nome della mia classe fossero gli stessi di AuthTest.php e AuthTest rispettivamente.

Ma ancora ricevevo lo stesso avviso, forse perché ho rinominato lo ExampleTest.php in AuthTest.php.

In ogni modo ho cancellato il file precedente e ha usato il php artisan make:test AuthTest e ha funzionato.

Problemi correlati