Podczas uruchamiania junit
testu w eclipse
otrzymuję to Exception
:
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
Dodałem junit.jar
plik biblioteki.
Próbowałem różnych wersji junit.jar: 4.4
, 4.8
, itd.
Jak naprawić ten wyjątek?
junit.jar
nie ma to związku z problememharcrest
słoiku hierarchia jest taka sama? jak worg > hamcrest > SelfDescribing
, czy jest w folderze głównym jar?Odpowiedzi:
Dodaj
hamcrest-all-X.X.jar
do swojej ścieżki klas .Najnowsza wersja z lutego 2015 r. To 1.3: http://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-all-1.3.jar&can=2&q=
źródło
hamcrest-all-X.X.jar
wystarczy, podczas gdy znacznie mniejszy.Według witryny zespołu JUnit GitHub ( https://github.com/junit-team/junit/wiki/Download-and-Install )
junit.jar
ihamcrest-core.jar
oba są potrzebne w ścieżce klas podczas korzystania z JUnit 4.11.Oto blok zależności Maven do dołączania junit i hamcrest.
źródło
Kilka kroków, które musisz wykonać:
źródło
U mnie działa: IntelliJ IDEA 13.1.1, JUnit4, Java 6
Zmieniłem plik w ścieżce projektu: [PROJECT_NAME] .iml
Zastąpiono:
Przez:
Tak więc ostateczny plik .iml to:
PS: zapisz plik i nie pozwól, aby program IntelliJ Idea załadował go ponownie. Tylko raz.
źródło
Potrzebujesz junit-dep.jar, ponieważ junit.jar ma kopię starych klas Hamcrest.
źródło
Ten problem jest spowodowany ścieżką klasy miss hamcrest-core-1.3.jar. Aby rozwiązać ten problem, dodaj hamcrest-core-1.3.jar podczas dodawania junit-4.XX.jar do ścieżki klas.
Na początku też napotykam ten problem, ale po odwołaniu się do oficjalnej strony i dodaniu hamcrest-core-1.3.jar do ścieżki klasy za pomocą wiersza poleceń, w końcu działa poprawnie.
źródło
Zasadniczo zawsze upewnij się, że hamcrest znajduje się przed innymi bibliotekami testowymi na ścieżce klas, ponieważ wiele takich bibliotek zawiera klasy hamcrest i dlatego może kolidować z wersją hamcrest, której używasz. To rozwiąże większość opisywanych problemów.
źródło
Na wypadek, gdyby ktoś tutaj używał netbeans i ma ten sam problem, wszystko, co musisz zrobić, to
To powinno rozwiązać problem
źródło
Musisz dodać plik JAR z rdzeniem hamcrestu do ścieżki klas, jak opisano tutaj: https://github.com/junit-team/junit4/wiki/Download-and-Install
źródło
Brzmi to jak problem ze ścieżką klas, więc można to zrobić na kilka różnych sposobów. Skąd się bierze org / hamcret / SelfDescribing? Czy to twoja klasa, czy w innym słoiku?
Spróbuj przejść do ścieżki budowania projektu i na karcie Biblioteki dodaj bibliotekę. Powinieneś móc wybrać JUnit do swojego projektu. Jest to trochę inne niż zwykłe umieszczenie pliku jar JUnit w projekcie.
W konfiguracji uruchamiania testu JUnit sprawdź ścieżkę klasy. Prawdopodobnie możesz to naprawić, dodając, że ścieżka klas widzi tam klasę SelfDescribing. Opcja Uruchom w Eclipse ma inny zestaw opcji dla opcji JUnit.
źródło
Jeśli ten problem pojawia się w projekcie RCP, może to być spowodowane jawnym zaimportowaniem JUnit.
Sprawdź w edytorze swoją kartę
plugin.xml
podDependencies
, usuńorg.junit
z zaimportowanych pakietów i dodajorg.junit
do wymaganych wtyczek.źródło
Problem polega na tym, że skonfigurujesz zaćmienie, aby wskazywało na JRE zamiast JDK . JRE ma
junit4.jar
wlib/ext
folderze, ale niehamcrest.jar
:) Więc rozwiązaniem jest sprawdzenie zainstalowanych JRE w Eclipse, usunięcie istniejącego i utworzenie nowego wskazującego na twój JDK .źródło
Najprostszym sposobem rozwiązania problemu jest skopiowanie najnowszej wersji hamcrest-code.jar do swojej CLASSPATH, czyli pliku, w którym przechowujesz inne pliki .jar potrzebne do kompilacji i uruchomienia aplikacji.
może to być np .: C: / ant / lib
źródło
Dzieje się tak, gdy uruchamiasz Anta z wiersza poleceń. Niejawne zależności użytkownika są dodawane w ścieżce klas na końcu i mają pierwszeństwo przed ścieżką klas dodaną do projektu. Uciekaj Ant z
-nouserlib
flagą. Niejawne zależności zostałyby wykluczone ze ścieżki klas.źródło
Jest lepsza odpowiedź na ten problem. dodaj zależność
źródło
Miałem ten sam problem, rozwiązaniem jest dodanie w ścieżce kompilacji / wtyczki jar org.hamcrest.core_1xx, można go znaleźć w eclipse / plugins.
źródło
Kilka kroków, które musisz wykonać:
To działa dla mnie ...
źródło