2013-02-25 12 views
24

Mam pewne problemy z phpunit. Kiedy wykonać test, phpunit dać mi te ostrzeżenia:Laravel 4 Nie znaleziono testów w TestCase

1) Ostrzeżenie Nie znaleziono w klasie "Illuminate \ Fundacja \ Test \ TestCase" testy.

2) Ostrzeżenie Nie znaleziono testów w klasie "TestCase".

Ale chciałbym ignorować tych plików, tak że phpunit nie będzie próbował uruchomić testy z nich.

Jak to zrobić?

Odpowiedz

47

Mam nadzieję, że teraz już znalazłem odpowiedź, ale jeśli nie ma to może pomóc:

Hmm - upewnij się, że nazwy plików i nazwy klasy wszystko dopasować. Dla przykładu , brak klasy FooTest z nazwą pliku BarTest.php.

Czy masz pewność, że masz plik * Test.php w katalogu aplikacji/testów ?

[...]

że było, to jeden z moich testów miał literówkę w classname filename-vs-. Dziwne, że literówka wyskakuje ostrzeżenie w klasach TestCase i zamiast flagować klasę, która je spowodowała.

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

Zasadniczo, upewnij się, że nazwy plików i nazwy klasy dopasować. Ja też waliłem w głowę.

+0

Może się również zdarzyć, jeśli testcase (metoda) nie rozpocznie się od testu roboczego. – Braders

+2

Link jest martwy (dlatego linki w odpowiedziach na SO są złym pomysłem). – Roscius

+10

Krótka wskazówka: ustaw klasę podstawową (w tym przypadku nazywane jest TestCase) klasą abstrakcyjną. – DerLola

41

Dodatkowym rozwiązaniem może być streszczenie klasy TestCase. W ten sposób PHPUnit nie spróbuje znaleźć w nim żadnych testów.

abstract class TestCase {

+0

Ta odpowiedź uratuje mój dzisiejszy dzień. Dziękuję bardzo @Derlola –

+0

Uratowałeś mnie też. PHPunit narzekał na testy w klasie bazowej, w których środowisko zostało skonfigurowane –

+0

dzięki za faktyczne udzielenie odpowiedzi .. –

4

Dla mnie problemem było to, że nazwa klasy nie pasuje do nazwy pliku, więc klasa zdefiniowana jako

class ExampleTest { 

nie został nazwany ExampleTest.php.

Jeżeli istnieją pewne pliki testowe, co chcesz ignorować, a następnie przejść do pliku phpunit.xml i wewnątrz

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

zastąpić tagów katalogów z tagami i określić konkretny plik testowy, który chcesz użyć.

0

Dla mnie miałem błąd w konwencji. Rozwiązaniem była zmiana nazwy klasy i pliku z TestFoo na FooTest.

0

Miałem też ten sam problem. Sprawdziłem, czy moja nazwa pliku i nazwa klasy są takie same, jak odpowiednio AuthTest.php i AuthTest.

Ale wciąż otrzymywałem to samo ostrzeżenie, może dlatego, że zmieniłem nazwę na ExampleTest.php na AuthTest.php.

W każdym razie usunąłem poprzedni plik i użyłem php artisan make:test AuthTest i zadziałało.

Powiązane problemy