Nie można rozwiązać importu org.junit

114

Muszę rozwiązać problem z Javą przed rozmową kwalifikacyjną, a oni wysłali mi zajęcia testowe. Zaczyna się od

import org.junit.Before;

a także ma następującą składnię w miejscach:

@RunWith(JUnit4.class)
...
@Before
...
@Test

Nie używałem Javy od jakiegoś czasu, więc trochę mnie to dezorientuje. Pobrałem eclipse i kiedy próbuję skompilować ten plik testowy, pojawiają się błędy przy imporcie i przy znakach @. Błąd importu zgłasza:

The import org.junit cannot be resolved.

@RunWith nie jest nawet rozpoznawany, ponieważ próbuje rozwiązać go do typu.

SKLAK
źródło
1
Czego szukałeś w sieci? Chcesz, abyśmy szczegółowo wyjaśnili, jak możesz uruchomić przypadek testowy JUnit 4? (Podpowiedź: jest to JUnit4.classw twoim kodzie)
Luiggi Mendoza
1
musisz dodać plik jar junit do projektu. Możesz użyć junit-dep-4.8.2.jar. Następnie możesz kliknąć prawym przyciskiem myszy i wybrać
Uruchom
2
Czy dodałeś plik jar jUnita do ścieżki kompilacji w Eclipse?
Pradeep Simha
Właśnie tak, powinienem po prostu wygooglować to pytanie. Dzięki za pomoc.
SKLAK

Odpowiedzi:

192

Musisz dodać junitbibliotekę do ścieżki klas swojego projektu. W zależności od konfiguracji programistycznej istnieje kilka możliwości osiągnięcia tego celu.

  1. Linia poleceń : w przypadku wywołań wiersza poleceń będziesz musiał dodać junit.jardo ścieżki klasy aplikacji za pomocą java -cp /path/to/junit.jar. Spójrz na odpowiedzi tutaj .

  2. Korzystanie z eclipse : dystrybucje Eclipse są dostarczane w pakiecie z tą biblioteką i w ten sposób można je wykorzystać w swoim projekcie. Kliknij prawym przyciskiem myszy projekt zaćmienia i przejdź do:

Właściwości -> Ścieżka budowania Java -> Biblioteki -> Dodaj bibliotekę -> JUnit -> Junit 3/4

W scenariuszach, w których chcesz użyć innej wersji słoika, zamiast klikania Dodaj bibliotekę powyżej, powinieneś kliknąć Dodaj zewnętrzny słoik i zlokalizować bibliotekę w systemie plików.

hthserhs
źródło
1
@NishantShreshth jak dodać to do mavenprojektu?
Kasun Siyambalapitiya
Dodałem JUnit 4 poprzez Właściwości -> Ścieżka budowania Javy, ale Eclipse od czasu do czasu pokazuje mi ten błąd, chociaż uruchomienie testów jest możliwe bez problemów. Ponowne uruchomienie Eclipse rozwiązuje problem - na chwilę. Jakieś wyjaśnienie?
Thomas W
Nie działa na mnie. Gdy projekt jest modułowy, wszystkie przyciski w zakładce Biblioteki są szare. (Z eclipse 2019-09 i java 11.0.4).
Gyro Gearloose
14

Kliknij prawym przyciskiem myszy projekt zaćmienia i przejdź do:

Właściwości -> Ścieżka budowania Java -> Biblioteki -> Dodaj bibliotekę -> JUnit -> Junit 3/4

U mnie działa.

fastforward
źródło
6

możesz łatwo wyszukać linię taką jak „@Test”, a następnie użyć funkcji quickfix „dodaj bibliotekę junit 4 do ścieżki budowania” w tej linii. Myślę, że jest to szybsze niż ręczne dodawanie junit do projektu.

anion
źródło
W mojej sytuacji to nie rozwiązuje problemu. JUnit jest idealnie na ścieżce, ale nadal pokazuje błąd.
猫 IT
1
Działa dla mnie ^^
jumping_monkey
6

Jeśli używasz mavena i ten fragment kodu znajduje się w mainfolderze, spróbuj przenieść go do testfolderu.

Searene
źródło
3
@VigneshrajSekarbabu Ponieważ ludzie zwykle ustawiają junitzakres na test, co oznacza, że ​​będą działać tylko w folderze testowym.
Searene
Dziękuję @searene .. Próbowałem umieścić moją TestBase w katalogu src / main / java, ale nie udało mi się uzyskać adnotacji testNG. więc przeniesiony do src / test / java. Ale teraz próbuję utworzyć RetryAnalyzer w src / main / java, a IRetrAnalyzer jest w org.testng, którego nie mogę uzyskać w klasach src / main / java. jakiś pomysł, co mogłoby to rozwiązać?
Vigneshraj Sekarbabu
@VigneshrajSekarbabu Jednym ze sposobów jest sprawdzenie zakresu zależności związanych z testami, upewnienie się test, że tak nie jest , abyś mógł użyć wszystkiego, co jest w środku /src/main/java.
Searene
5

Jeśli używasz eclipse i pracujesz nad projektem maven, to również działają powyższe kroki.

Kliknij prawym przyciskiem myszy folder główny.

Properties -> Java Build Path -> Libraries -> Add Library -> JUnit -> Junit 3/4

Instrukcje krok po kroku tutaj

sarthakgupta072
źródło
U mnie to tylko działało. Wykonywałem zdalne debugowanie mojej aplikacji internetowej, więc eclipse miało pewne problemy z integracją junit. W odniesieniu do mavena, tak, maven importuje junit i przeprowadzi testy, gdy uruchomimy mvn clean install. Nie jestem ekspertem, ale myślę, że to się zdarzyło lub przynajmniej wydarzyło się ze mną.
sarthakgupta072
2

Wydaje się, że plik jar Junit nie znajduje się w ścieżce. Upewnij się również, że używasz jdk1.5 lub nowszego.

zaffargachal
źródło
Nie tylko słoik, OP powinien uruchomić go jako test JUnit (może OP zapyta, jak uruchomić klasę Javy, jeśli nie mapublic static void main(String[] args)
Luiggi Mendoza
Nie wiedziałem, jak połączyć JUnit. Rozgryzłem to. Kliknij prawym przyciskiem myszy nazwę projektu i połącz JUnit. Dzięki.
SKLAK
2

Jeśli używasz Java 9 lub nowszej, może być konieczne wymaganie zależności junit w module-info.java

module myModule {
    requires junit;
}
janDro
źródło
Jestem prawie pewien, że problem, z którym się spotykam, jest taki sam jak pierwotne pytanie, jest powiązany z tym nowym mechanizmem modułu. Teraz dodałem tę linię do mojego istniejącego module-info.java i nie ma już czerwonego krzyża w eksploratorze pakietów, ale w źródle wszystko pozostaje takie samo.
猫 IT
2

Jeśli używasz Mavena, możesz kliknąć kontekst i uruchomić 'Maven / Update Project ...'

wprowadź opis obrazu tutaj

Jim
źródło
Kiedy to robię, module-info.java jest wypełniony błędami, a lambdy nie są rozpoznawane. Eclipse / maven przywróciło wersję biblioteki i java do wersji 1.5, a ja mam <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <version> 3.8 .0 </version> <configuration> <release> 11 </release> </configuration> </plugin> w moim pom
Gyro Gearloose
1

Na początku kopiowania linii kodu za elementami „Junit” lub „TestNG” będzie wyświetlany komunikat Error, dopóki nie zaimportujesz biblioteki z plikiem projektu.

Aby zaimportować biblioteki do projektu:

Right Click on the Project --> Properties --> Java Build Path --> Libraries -> Add Library -> 'Junit' or 'TestNG'

Dodaj biblioteki Junit

oshan Viduranga
źródło
1

Po dodaniu TestNG do zależności Maven zmień zakres z testu na kompilację. Mam nadzieję, że to rozwiąże problem.

Ajay
źródło
Prosimy o rozważenie umieszczenia takich sugestii w postaci komentarzy.
Hades
1

musisz dodać zależność Junit w pliku pom.xml, oznacza to, że musisz zaktualizować do najnowszej wersji.

<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency> 
Veera Reddy
źródło
0

Jeśli chcesz stworzyć własną klasę testową. W Eclipse przejdź do File -> New -> J Unit Test Case . Następnie możesz wybrać wszystkie ścieżki i konfigurację klasy testowej w wyskakującym okienku kreatora.

Dharu Ravi
źródło
-1

Zaktualizuj do najnowszej wersji JUnit w pom.xml. Mi to pasuje.

RKM
źródło
ta odpowiedź byłaby lepsza, gdyby zawierał więcej szczegółów, jak to zrobić - tj. jaki kod wkleić, jak znaleźć najnowszą wersję, jak wyszukać kod online, aby uzyskać właściwy tekst itp.
LightCC