Impossible de résoudre le fichier org.junit d'importation

114

J'ai besoin de résoudre un problème java pour une interview et ils m'ont envoyé le cours de test. Cela commence par

import org.junit.Before;

et a également la syntaxe suivante aux endroits:

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

Je n'ai pas utilisé Java depuis un moment donc cela me déroute un peu. J'ai téléchargé eclipse et lorsque j'essaie de compiler ce fichier de test, il y a des erreurs à l'importation et aux signes @. L'erreur d'importation génère:

The import org.junit cannot be resolved.

Et le @RunWith n'est même pas reconnu car il essaie de le résoudre en un type.

SKLAK
la source
1
Qu'avez-vous recherché sur le net? Vous souhaitez que nous vous expliquions en détail comment exécuter un scénario de test JUnit 4? (Indice: il y a ceci JUnit4.classdans votre code)
Luiggi Mendoza
1
vous devez ajouter le fichier jar junit au projet. Vous pouvez utiliser junit-dep-4.8.2.jar. Ensuite, vous pouvez faire un clic droit et choisir Exécuter en tant que scénario de test junit
Krushna
2
Avez-vous ajouté le fichier jar de jUnit à votre chemin de construction dans eclipse?
Pradeep Simha
Je viens de le faire, j'aurais dû simplement googler cette question. Merci pour l'aide.
SKLAK

Réponses:

192

Vous devez ajouter une junitbibliothèque au chemin de classe de votre projet. Il existe plusieurs choix pour y parvenir en fonction de votre configuration de développement.

  1. Ligne de commande : dans le cas des appels en ligne de commande, vous devrez ajouter junit.jarau chemin de classe de votre application avec java -cp /path/to/junit.jar. Jetez un œil aux réponses ici .

  2. Utilisation d'éclipse : les distributions Eclipse sont fournies avec cette bibliothèque et c'est ainsi que vous pouvez l'utiliser pour votre projet. Faites un clic droit sur le projet eclipse et naviguez:

Propriétés -> Chemin de construction Java -> Bibliothèques -> Ajouter une bibliothèque -> JUnit -> Junit 3/4

Dans les scénarios où vous souhaitez utiliser une version différente du pot, au lieu de cliquer sur Ajouter une bibliothèque ci-dessus, vous devez cliquer sur Ajouter un pot externe et localiser la bibliothèque sur le système de fichiers.

hthserhs
la source
1
@NishantShreshth comment ajouter cela dans un mavenprojet?
Kasun Siyambalapitiya du
J'ai ajouté JUnit 4 via Propriétés -> Chemin de construction Java, mais de temps en temps, Eclipse me montre toujours cette erreur, bien que l'exécution des tests soit possible sans problème. Le redémarrage d'Eclipse résout le problème - pendant un certain temps. Une explication à cela?
Thomas W
Ça ne marche pas pour moi. Dès que le projet est modulaire, tous les boutons de l'onglet Bibliothèques sont gris. (Avec eclipse 2019-09 et java 11.0.4).
Gyro Gearloose
14

Cliquez avec le bouton droit sur le projet eclipse et naviguez:

Propriétés -> Chemin de construction Java -> Bibliothèques -> Ajouter une bibliothèque -> JUnit -> Junit 3/4

Cela fonctionne sur le mien.

avance rapide
la source
6

vous pouvez facilement rechercher une ligne comme "@Test" puis utiliser le correctif rapide "ajouter la bibliothèque junit 4 au chemin de construction" sur cette ligne. Je pense que c'est plus rapide que d'ajouter junit manuellement au projet.

anion
la source
Cela ne résout pas le problème dans ma situation. JUnit est parfaitement dans le chemin mais il continue d'afficher l'erreur.
猫 IT
1
Fonctionne pour moi ^^
jumping_monkey
6

Si vous utilisez maven et que ce morceau de code se trouve dans le maindossier, essayez de le déplacer dans le testdossier.

Searene
la source
3
@VigneshrajSekarbabu Parce que les gens définissent généralement junitla portée de comme test, ce qui signifie qu'ils ne travailleront que dans le dossier de test.
Searene
Merci @searene .. J'ai essayé d'avoir mon TestBase dans le src / main / java mais je n'ai pas pu obtenir les annotations testNG. donc déplacé vers src / test / java. Mais maintenant, j'essaie de créer un RetryAnalyzer dans src / main / java et IRetrAnalyzer est dans org.testng que je ne peux pas obtenir dans les classes src / main / java. une idée de ce qui pourrait résoudre ce problème?
Vigneshraj Sekarbabu
@VigneshrajSekarbabu Une façon est de vérifier la portée de vos dépendances liées aux tests, assurez-vous qu'elles ne le sont pas test, afin que vous puissiez tout utiliser /src/main/java.
Searene
5

Si vous utilisez eclipse et travaillez sur un projet maven, les étapes ci-dessus fonctionnent également.

Cliquez avec le bouton droit sur votre dossier racine.

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

Instructions étape par étape ici

sarthakgupta072
la source
Pour moi, cela n'a fonctionné. J'effectuais un débogage à distance de mon application Web, donc eclipse a eu quelques problèmes avec l'intégration de junit. En ce qui concerne maven, oui maven importe junit et exécutera les tests lorsque nous exécuterons mvn clean install. Pas un expert, mais c'est ce que je pense qui se passe ou du moins est arrivé avec moi.
sarthakgupta072
2

Sembler que le fichier jar Junit n'est pas dans le chemin, assurez-vous également que vous utilisez jdk1.5 ou supérieur.

zaffargachal
la source
Pas seulement le jar, OP devrait l'exécuter en tant que test JUnit (peut-être qu'OP demandera comment exécuter la classe Java s'il n'a pas depublic static void main(String[] args)
Luiggi Mendoza
Je ne savais pas comment lier le JUnit. Je l'ai compris. Cliquez avec le bouton droit sur le nom du projet et liez JUnit. Merci.
SKLAK
2

Si vous utilisez Java 9 ou supérieur, vous devrez peut-être exiger la dépendance junit dans votre module-info.java

module myModule {
    requires junit;
}
janDro
la source
Je suis presque sûr que le problème auquel je suis confronté, qui est le même que la question d'origine, est lié à ce nouveau mécanisme de module. Maintenant, j'ai ajouté cette ligne à mon module-info.java existant et il n'y a plus de croix rouge dans l'explorateur de paquets mais dans la source tout reste le même.
猫 IT
2

Si vous utilisez Maven, vous pouvez cliquer sur le contexte et exécuter 'Maven / Update Project ...'

entrez la description de l'image ici

Jim
la source
Lorsque je fais cela, module-info.java est rempli d'erreurs et les lambdas ne sont pas reconnus. Eclipse / maven a rétabli la bibliothèque et la version java à 1.5, et j'ai <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <version> 3.8 .0 </version> <configuration> <release> 11 </release> </configuration> </plugin> dans mon pom
Gyro Gearloose
1

Au début de la ligne de code, copiez les éléments «Junit» ou «TestNG» avec une erreur jusqu'à ce que vous importiez la bibliothèque avec le fichier de projet.

Pour importer des bibliothèques dans un projet:

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

Ajouter des bibliothèques Junit

oshan Viduranga
la source
1

Lorsque vous ajoutez TestNG à vos dépendances Maven, changez la portée de test à compile. J'espère que cela résoudra votre problème.

Ajay
la source
Veuillez envisager de mettre ces suggestions sous forme de commentaires.
Hades
1

vous devez ajouter une dépendance Junit dans le fichier pom.xml, cela signifie que vous devez mettre à jour avec la dernière version.

<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency> 
Veera Reddy
la source
0

Si vous souhaitez créer votre propre classe de test. Dans Eclipse, allez dans Fichier -> Nouveau -> J Unit Test Case . Vous pouvez ensuite choisir tous vos chemins et tester la configuration de la classe dans la fenêtre contextuelle de l'assistant.

Dharu Ravi
la source
-1

Mettez à jour vers la dernière version de JUnit dans pom.xml. Ça marche pour moi.

RKM
la source
cette réponse serait meilleure avec plus de détails sur la façon de le faire - c'est-à-dire quel code coller, comment trouver la dernière version, comment rechercher le code en ligne pour obtenir le bon texte, etc.
LightCC