L'importazione org.junit non può essere risolta


114

Devo risolvere un problema Java per un colloquio e mi hanno inviato la lezione di prova. Inizia con

import org.junit.Before;

e ha anche la seguente sintassi in alcuni punti:

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

Non uso Java da un po ', quindi questo mi confonde un po'. Ho scaricato eclipse e quando provo a compilare questo file di prova ci sono errori nell'importazione e nei segni @. L'errore di importazione genera:

The import org.junit cannot be resolved.

E @RunWith non viene nemmeno riconosciuto perché cerca di risolverlo in un tipo.


1
Cosa hai cercato in rete? Vuoi che ti diamo una spiegazione dettagliata di come puoi eseguire un test case JUnit 4? (Suggerimento: c'è questo JUnit4.classnel codice)
Luiggi Mendoza


1
è necessario aggiungere il file jar junit al progetto. Puoi utilizzare junit-dep-4.8.2.jar. Quindi puoi fare clic con il tasto destro e scegliere Esegui come caso di test
junit

2
Hai aggiunto il file jar di jUnit al tuo percorso di build in eclipse?
Pradeep Simha,

Appena fatto, avrei dovuto cercare su Google questa domanda. Grazie per l'aiuto.
SKLAK

Risposte:


192

Devi aggiungere la junitlibreria al classpath del tuo progetto. Ci sono diverse scelte per ottenerlo a seconda della configurazione di sviluppo.

  1. Riga di comando : nel caso di invocazioni da riga di comando, dovrai aggiungere junit.jaral classpath della tua applicazione con java -cp /path/to/junit.jar. Dai un'occhiata alle risposte qui .

  2. Uso di eclipse : le distribuzioni di Eclipse sono incluse in questa libreria ed è così che puoi usarla per il tuo progetto. Fare clic con il tasto destro sul progetto Eclipse e navigare:

Proprietà -> Percorso build Java -> Librerie -> Aggiungi libreria -> JUnit -> Junit 3/4

Negli scenari in cui si desidera utilizzare una versione diversa del jar, invece di fare clic su Aggiungi libreria in alto, fare clic su Aggiungi jar esterno e individuare la libreria sul file system.


1
@NishantShreshth come aggiungerlo a un mavenprogetto?
Kasun Siyambalapitiya

Ho aggiunto JUnit 4 tramite Proprietà -> Percorso build Java, ma ogni tanto Eclipse mi mostra ancora questo errore, sebbene l'esecuzione dei test sia possibile senza problemi. Il riavvio di Eclipse risolve il problema, per un po '. Qualche spiegazione per questo?
Thomas W

Non funziona per me. Non appena il progetto è modulare, tutti i pulsanti nella scheda Librerie sono grigi. (Con eclipse 2019-09 e java 11.0.4).
Gyro Gearloose

14

Fare clic con il tasto destro sul progetto Eclipse e navigare:

Proprietà -> Percorso build Java -> Librerie -> Aggiungi libreria -> JUnit -> Junit 3/4

Funziona sul mio.


6

puoi facilmente cercare una riga come "@Test" e quindi utilizzare la correzione rapida "aggiungi la libreria junit 4 al percorso di creazione" su questa riga. Penso che questo sia più veloce dell'aggiunta manuale di junit al progetto.


Questo non lo risolve nella mia situazione. JUnit è perfettamente nel percorso ma continua a mostrare l'errore.
猫 IT

1
Funziona per me ^^
jumping_monkey

6

Se usi Maven e questo pezzo di codice si trova nella maincartella, prova a riposizionarlo nella testcartella.


3
@VigneshrajSekarbabu Perché le persone di solito impostano junitl'ambito come test, il che significa che lavoreranno solo nella cartella di test.
Searene

Grazie @searene .. Ho provato ad avere il mio TestBase in src / main / java ma poi non sono riuscito a ottenere le annotazioni testNG. quindi spostato in src / test / java. Ma ora sto cercando di creare un RetryAnalyzer in src / main / java e IRetrAnalyzer è in org.testng che non sono in grado di ottenere nelle classi src / main / java. qualche idea su cosa potrebbe risolvere questo problema?
Vigneshraj Sekarbabu

@VigneshrajSekarbabu Un modo è controllare l'ambito delle dipendenze relative ai test, assicurarsi che non lo siano test, in modo da poter utilizzare tutto ciò che contiene /src/main/java.
Searene

5

Se stai usando eclipse e stai lavorando a un progetto maven, anche i passaggi precedenti funzionano.

Fare clic con il tasto destro sulla cartella principale.

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

Istruzioni passo passo qui


Per me questo ha funzionato solo. Stavo eseguendo il debug remoto della mia applicazione web, quindi eclipse ha avuto alcuni problemi con l'integrazione di junit. Per quanto riguarda maven, sì, maven importa junit ed eseguirà i test quando eseguiremo mvn clean install. Non un esperto, ma questo è quello che penso che accada o almeno sia successo con me.
sarthakgupta072

2

Sembra che il file jar di Junit non sia nel percorso, assicurati anche di utilizzare jdk1.5 o successivo.


Non solo il jar, OP dovrebbe eseguirlo come un test JUnit (forse OP chiederà come eseguire la classe Java se non ha unpublic static void main(String[] args)
Luiggi Mendoza

Non sapevo come collegare JUnit. L'avevo capito. Fare clic con il pulsante destro del mouse sul nome del progetto e collegare JUnit. Grazie.
SKLAK

2

Se stai usando Java 9 o successivo, potresti dover richiedere la dipendenza junit nel tuo module-info.java

module myModule {
    requires junit;
}

sono abbastanza sicuro che il problema che devo affrontare, lo stesso della domanda originale, sia collegato a questo nuovo meccanismo del modulo. Ora ho aggiunto questa riga al mio module-info.java esistente e non c'è più la croce rossa nel package explorer ma nel sorgente tutto rimane lo stesso.
猫 IT

2

Se si utilizza Maven, è possibile fare clic contestualmente ed eseguire "Maven / Aggiorna progetto ..."

inserisci qui la descrizione dell'immagine


Quando lo faccio, module-info.java è pieno di errori e le lambda non vengono riconosciute. Eclipse / maven hanno ripristinato la libreria e la versione java alla 1.5, e io ho <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <version> 3.8 .0 </version> <configuration> <release> 11 </release> </configuration> </plugin> nel mio pom
Gyro Gearloose

1

All'inizio della riga di codice, la copia oltre gli elementi "Junit" o "TestNG" verrà visualizzata con l'errore finché non importi la libreria con il file di progetto.

Per importare le librerie nel progetto:

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

Aggiungi le librerie Junit


1

Quando aggiungi TestNG alle tue dipendenze Maven, cambia l'ambito da test a compilazione.Spero che questo risolva il tuo problema.


Si prega di considerare di mettere tali suggerimenti come commenti.
Ade

1

devi aggiungere la dipendenza Junit nel file pom.xml, significa che devi aggiornare con l'ultima versione.

<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency> 

0

Nel caso in cui desideri creare la tua classe di prova. In Eclipse vai su File -> Nuovo -> J Unit Test Case . È quindi possibile scegliere tutti i percorsi e l'impostazione della classe di test all'interno del popup della procedura guidata.


-1

Aggiorna all'ultima versione di JUnit in pom.xml. Per me funziona.


questa risposta sarebbe migliore con maggiori dettagli su come farlo - cioè quale codice incollare, come capire l'ultima versione, come cercare il codice online per ottenere il testo giusto, ecc.
LightCC
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.