Mój test Java działał dobrze z Eclipse. Ale teraz, kiedy ponownie uruchamiam test z menu uruchamiania, otrzymuję następujący komunikat:
No tests found with test runner 'JUnit 4'
W .classpath
pliku mam wszystkie jar
pliki, a na koniec mam:
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Jak mogę rozwiązać ten błąd i ponownie uruchomić testy?
Odpowiedzi:
to właśnie mi się przydarzyło. Odbudowanie lub ponowne uruchomienie Eclipse nie pomogło.
Rozwiązałem to, zmieniając nazwę jednej z metod testowych na „test ...” (styl JUnit3), a następnie wszystkie testy zostały znalezione. Zmieniłem jego nazwę z powrotem na to, co było wcześniej, i nadal działa.
źródło
testQuotes
inne metody, które nie zaczynają się od testu, ale nadal otrzymuję błąd Nie znaleziono testówjunit.framework.TestCase
, a moje metody musiały zaczynać się od „testu”. Zamiast rozszerzaćTestCase
, dodałem import:import static org.junit.Assert.*;
i mogę nazwać moje metody, jak chcę. Dziwne ...Kiedy otrzymujemy te błędy, wydaje się, że Eclipse jest po prostu zdezorientowany. Zrestartuj Eclipse, odśwież projekt, wyczyść go, pozwól Eclipse odbudować go i spróbuj ponownie. W większości przypadków działa to jak urok.
źródło
W menu kontekstowym katalogu „test” wybierz „Ścieżka kompilacji” -> „Użyj jako folderu źródłowego”. Eclipse powinno zobaczyć Twoje pliki unitTests.java jako pliki źródłowe. Ostrzeżenie „Nie znaleziono testów JUnit” występuje, ponieważ w katalogu „build” nie ma plików unitTests.class
źródło
Sprawdź, czy Twoja klasa testowa rozszerza „TestCase”. jeśli tak, usuń tę klauzulę. Twoja klasa nie musi rozszerzać się z klasy „TestCase”. To większość przypadków, które spotkałem.
Po TestCase powinno wystarczyć.
źródło
Miałem do czynienia z tym samym problemem i zdebugowałem go do złych przykładów w Internecie i wewnętrznych elementach junit. Zasadniczo nie rób swojej klasy rozszerzeniem TestCase, jak pokazują niektóre przykłady dla Junit 4.x. Użyj trochę konwencji nazewnictwa Test lub jeśli chcesz mieć adnotację, możesz użyć @RunWith (JUnit4.class).
Jeśli potrzebujesz dostępu do metod assert, rozszerz Assert lub użyj importu statycznego.
Jeśli twoja klasa rozszerza TestCase, to nawet jeśli używasz Junit 4 Runner, zostanie uruchomiona jako 3. Dzieje się tak, ponieważ w kodzie inicjalizacyjnym jest wykrywanie:
Zobacz JUnit3Builder i linie:
Zwraca to wartość true, a test zgodności z junit4 nie zostanie przeprowadzony.
źródło
@RunWith(JUnit4)
dodałem adnotacje do klasy i rozszerzyłem ją z "GroovyTestCase". Bez@RunWith(JUnit4)
mam te same problemy.Spróbuj dodać
@Test powyżej metody dla takiego testu
źródło
Jeszcze inne możliwe rozwiązanie, które wrzucę na ring: nie mogłem uruchomić klasy testowej ani z okna edytora, ani z Eksploratora pakietów, ale klikając prawym przyciskiem myszy nazwę klasy w widoku konspektu i wybierając opcję Uruchom jako JUnit Test zadziałał ... Idź do figury!
źródło
Brak zestawów testowych w JUnit4. Zamiast tego użyj adnotacji lub użyj starych konwencji nazw JUnit3.
Przykład:
źródło
Mnie też się to przydarzyło. Próbowałem zrestartować Eclipse, a także poprzedziłem moje metody testowe testami. Żadne nie działało.
Następujący krok zadziałał: Zmień wszystkie metody testowe obecne w @BeforeClass i @AfterClass na metody statyczne.
tzn. jeśli masz swoją metodę testową w poniższym formacie:
następnie zmień go na:
To zadziałało dla mnie.
źródło
Znalazłem odpowiedź:
Otrzymałem ten błąd, gdy wykonałem test samodzielnie z zaćmienia (kliknij prawym przyciskiem myszy metodę i wybierz uruchomienie jako test junit),
Kiedy wykonałem całą klasę jako junit test, test został wykonany poprawnie z parametrami.
źródło
Kiedy napotykam ten problem, po prostu edytuję plik i zapisuję go ... działa jak urok
źródło
Mój problem polegał na tym, że deklaracja
import org.junit.Test;
zniknęła (lub nie została dodana?). Po dodaniu musiałem usunąć kolejnąimport
deklarację (Eclipse podpowie Ci, która z nich) i wszystko znów zaczęło działać.źródło
Bardzo późno, ale tym, co rozwiązało problem, było to, że nazwy moich metod testowych zaczynały się od wielkich liter: „public void Test”. Tworzenie małych liter zadziałało.
źródło
Wypróbowałem rozwiązanie firmy Germán. Zadziałało dla wszystkich metod z mojej klasy, ale mam dużo zajęć w moim projekcie.
Spróbowałem więc usunąć ze ścieżki kompilacji, a następnie dodać ją ponownie. Działało idealnie.
Mam nadzieję, że to pomoże.
źródło
Sześć lat później ... nadal występują problemy z Eclipse i czasami nie można znaleźć JUnits.
W moim Eclipse Mars 2 odkryłem, że nie rozpozna on klas testowych pobranych z gita, jeśli
@Test
w pliku jest więcej niż 9 lub 10 adnotacji. Muszę skomentować wszelkie dodatkowe testy, uruchomić klasę testów, a następnie odkomentować je i ponownie uruchomić klasę. Domyśl...źródło
Być może konfiguracja uruchamiania JUnit była przeznaczona dla pojedynczej klasy testowej, a Ty w jakiś sposób zmieniłeś tę konfigurację na „uruchamianie wszystkich testów w folderze źródłowym, pakiecie lub projekcie”
Może to jednak spowodować wyświetlenie komunikatu o błędzie „Nie znaleziono testów z programem uruchamiającym testy„ JUnit 4 ””.
Albo dokonałeś modyfikacji w klasie testowej, usuwając
@Test
adnotację.Zobacz tę stronę wiki .
źródło
toto.lolo.Testrunner
a nietoto.lolo.testrunner
(„T”)Napotkałem ten sam problem podczas uruchamiania testu JUnit. Rozwiązałem to, umieszczając adnotację @Test tuż nad główną funkcją testową.
źródło
To, co naprawiło mój przypadek, było podobne do odpowiedzi @ JamesG: zrestartowałem Eclipse, odbudowałem projekt i odświeżyłem go; ALE zanim to zrobiłem, najpierw zamknąłem projekt (kliknij projekt prawym przyciskiem myszy w eksploratorze pakietów -> Zamknij projekt), a następnie ponownie go otworzyłem. Wtedy zadziałało.
Rozwiązanie obejścia, które znalazłem przed znalezieniem tego ostatecznego rozwiązania, które właśnie opisałem: Skopiuj klasę testową i uruchom klasę testową jako JUnit.
źródło
Sprawdź, czy folder, w którym znajdują się testy, jest folderem źródłowym. Jeśli nie - kliknij prawym przyciskiem myszy i użyj jako folderu źródłowego.
źródło
Zamknij i otwórz projekt działał dla mnie.
źródło
Jest jeszcze jedna szansa, że mogłeś zmienić Junit Test z niższej wersji (np. Junit 3) na Junit 4. Czy tak postępuj zgodnie z poniższymi krokami: -
źródło
Dodaj
@Test
do testu.Najedź myszą na adnotację.
Wybierz opcję „Dodaj bibliotekę junit 4 do ścieżki klas”
źródło
Czy Twój projektant Eclipse opiera się na projektach? Jeśli tak, może być konieczna aktualizacja wersji m2eclipse.
Stąd: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html
źródło
Mnie też się to przydarzyło. Okazało się, że w Eclipse nie utworzyłem nowego pliku klasy Java i dlatego nie był kompilowany. Spróbuj skopiować kod do pliku klasy Java, jeśli jeszcze go tam nie ma, a następnie skompiluj.
źródło
Dowiedziałem się, że Eclipse wydaje się wykonywać testy w stylu JUnit 3 tylko wtedy, gdy twoja klasa test rozciąga się od
TestCase
. Jeśli usuniesz spadek, adnotacje zadziałały.Pamiętaj, że musisz zaimportować statycznie wszystkie wymagane
assert*
metody, takie jakimport static org.junit.Assert.*
.źródło
Musiałem wykonać czyszczenie mvn w wierszu poleceń, a następnie projekt-> wyczyść w zaćmieniu. Wcześniej zmieniłem nazwę klasy, a potem z powrotem, ale wątpię, żeby to pomogło.
źródło
Używam także Eclipse z Maven (m2e 1.4). Testy działały z Mavenem, ale nie z Eclipse ... nawet po kilku zastosowaniach
Maven>Update project
.Moim rozwiązaniem było dodanie kilku linii w .classpath generowanym przez m2e. Linie teraz się trzymają.
źródło
Mam taki problem od czasu do czasu. To, co dla mnie najbardziej rozwiązuje ten problem, to uruchomienie testu JUnit w konfiguracjach Run ... upewniając się, że JUnit 4 jest ustawiony jako test runner.
Zwykle widzę ten problem podczas próby uruchomienia testu jako ... Junit z menu kontekstowego w Eksploratorze pakietów. Jeśli klikniesz prawym przyciskiem myszy kod testu, który próbujesz uruchomić, i zamiast wybierać Uruchom jako ... Junit Test, wybierz opcję Uruchom konfiguracje ... upewnij się, że projekt, klasa testowa i moduł uruchamiający testy są ustawione poprawnie, kliknij zastosuj, a następnie uruchom pracuje dla mnie cały czas.
źródło
Zacząłem pracować z Selenium i Eclipse w mojej pracy i robiłem swój pierwszy automatyczny test i usunąłem z kodu @Before, @Test i @After notatki i miałem ten problem „Nie znaleziono testów z test runner junit4” .
Moim rozwiązaniem było po prostu ponowne dodanie notatek @Before, @Test i @After i dzięki temu mój skrypt zadziałał. Ważne jest, aby nie usuwać tego z kodu.
To jest prosty test wykorzystujący Google do wyszukiwania czegoś:
źródło
Używając ScalaIDE (3.0.4-2.11-20140723-2253-Typesafe) miałem podobny problem z
Right Click Scala Test Class-> Run As -> Scala Junit Test
menu kontekstowym.Próbowałem edytować klasę (ale nie z powodu błędu kompilacji), wyczyścić, zamknąć projekt, zamknąć Eclipse. Żadne z nich nie działało, aby przywrócić menu kontekstowe dla zajęć, które wcześniej działały dobrze. Klasy testowe nie używają
@Test
adnotacji i zamiast tego używają@RunWith(classOf[JUnitRunner])
adnotacji na początku klasy przy użyciu kodu ScalaTest.Kiedy próbowałem bezpośrednio wybrać
Scala Junit Test
z edytora uruchamiania konfiguracji Run Configuration, otrzymałem okno dialogowe z pytania. Odpowiedź Footix29 była dla mnie kluczowa.Zauważyłem, że mimo że wyczyściłem projekt kilka razy, moje klasy w katalogu / bin nie były odbudowywane od jakiegoś czasu.
Oto jak odzyskałem menu kontekstowe i mogłem ponownie uruchomić
Scala Junit Test
s:manually
wyczyścił klasy, usuwając plik/bin/<package dir>*
via ExplorerProject -> Clean
ed projekt wraz z pełną przebudowąPodejrzewam, że edycja klas w ogóle jest w stanie wyczyścić zapisany stan Eclipse i ponownie go uruchomić. W moim przypadku wszystkie poprzednie zajęcia, które wypróbowałem, zawiodły, więc
manual
czysty krok był tylko młotkiem, którego potrzebowałem. Jednak inne sztuczki, które wpływają na koncepcję Eclipse dotyczące ścieżki klasy / stanu kompilacji, również powinny działać.Co więcej, myślę, że to zachowanie zostało częściowo wywołane próbą refaktoryzacji klasy Scala poprzez zmianę jej nazwy (do której jest do bani środowisko Scala Eclipse IDE), gdzie całe czyszczenie po początkowej zmianie pliku odbywa się ręcznie. Nie było błędów kompilacji, ale nie było też ostrzeżeń, których się spodziewałem, co oznacza, że coś utknęło w informacjach o stanie kompilacji Eclipse.
źródło