web-dev-qa-db-fra.com

Exécution de tests sur Intellij: Classe introuvable

J'évalue IntelliJ (13.0.2 133.696) et je ne parviens pas à exécuter les tests jUnit à partir de l'EDI.

Mon projet est un projet multi-modules et utilise scala.

La classe de test est située sous src/test/scala/xxx/xxxxx/xxx/xxxx/xxxxx et chaque fois que j'essaie de courir à partir de IDE je reçois la même erreur:

Class not found: "xxx.xxxxx.xxx.xxxx.xxxxx.AccountRepositoryTest"

La classe de test n'a rien d'extraordinaire, simple test jUnit:

@RunWith(classOf[SpringJUnit4ClassRunner])
@ContextConfiguration(classes = Array(classOf[DataConfig], classOf[SettingsConfig]))
class AccountRepositoryTest extends AssertionsForJUnit {

J'ai trouvé une question connexe Impossible d'exécuter les tests Junit à partir de IDEA 13.0 IDE pour les projets de niveaux importés) , mais le correctif fourni ( mise à niveau vers 13.0.2) ne fonctionne pas.

J'ai même essayé de mettre à jour le dernier EAP, toujours le même problème.

47
gerasalus

J'ai eu ce même problème, et dans mon cas, le problème était dû au chemin "Sortie du compilateur du projet" laissé vide dans les paramètres du projet.

Project Structure configuration screen

Pour résoudre ce problème, j’ai créé un répertoire classes à la racine de mon projet et défini Project compiler output au chemin absolu (utilisez le bouton pour parcourir).

28
bradley.ayers

J'ai parcouru certaines de ces réponses, bousculé dans les paramètres du projet, essayé plusieurs choses, etc., et rien n'a fonctionné. (Divulgation complète: je n'essaie pas de jongler avec Gradle ici; je n'utilise que Maven, mais je ne vois pas ce que cela a à voir avec Gradle.)

J'utilise IDEA 14.

Ce que j'ai trouvé fonctionner, parce qu'il me semblait tout simplement qu'IntelliJ s'était égaré, était le suivant:

$ rm -rf .idea project-name.iml

Puis, relancez IntelliJ et faites Fichier -> Ouvrir -> naviguer jusqu'à la racine de mon projet, etc. - bref, je viens de recréer mon projet.

IntelliJ s'en est remis. J'ai peut-être gaché quelque chose à l'origine dans ce projet, car j'avais refondé à la fois les noms de paquet et de classe et j'avais même changé le nom du projet. (C'était probablement de ma faute si c'était arrivé.)

22
Russ Bateman

Allez dans Paramètres du projet -> Projet.

Remplissez la sortie du compilateur du projet: ex. D:\repo\Project\out

Aller au module -> Chemins

Sois sûr que:

le chemin de sortie est comme D:\repo\Project\out\production

chemin de sortie de test tel que D:\repo\Project\out\test

Devrait marcher!

12
treefolk

Vérifiez que la configuration Exécuter/Déboguer pour ce test "Utiliser le chemin de classe et le SDK du module:" doit pointer dans votre module.

En attendant, votre module doit avoir une facette Scala et cette classe doit être à l'intérieur des "Dossiers source de test".

3
Stas

Vous pouvez essayer d'invalider le cache et redémarrer. Cela résout généralement les problèmes lorsque vous ajoutez de nouvelles dépendances/classes.

3
RvK

J'ai eu le même problème. J'ai changé un chemin dans Paramètres du module -> Modules -> Chemins -> Test du chemin de sortie vers mon répertoire pour le bytecode des classes de test (exclure les chemins de sortie on). Maintenant tout fonctionne!

3
MaKri

Assurez-vous que votre package de classe de test et la classe pour laquelle vous écrivez le scénario de test ne sont pas identiques. Si le cas de test et la classe ont le même package, le compilateur va chercher dans le dossier src et ignore le dossier de test.

2
Jet

J'ai eu le même problème, Intellij n'a pas trouvé le chemin de sortie de test. L'exécution de l'application régulière n'a cependant posé aucun problème.

Pour moi, le correctif passait des chemins de compilation de projet hérités à l'utilisation de chemins de sortie de compilation de module.

Paramètres du projet -> Modules -> (Votre module) -> Chemins (onglet)

Définissez le bouton de sélection de la radio sur "Utiliser le chemin de sortie de compilation du module". Pour moi, la suggestion de saisie automatique ayant fonctionné, vous devrez peut-être entrer manuellement le bon chemin de sortie de test si la suggestion automatique ne fonctionne pas. N'oubliez pas d'appliquer les changements de paramètres.

1
gan

Assurez-vous simplement que le dossier de votre fichier de test est marqué comme un dossier de test dans Intellij IDEA. Cela a fonctionné pour moi. Si vous avez plusieurs répertoires avec des fichiers source portant le même nom, ajoutez un package au fichier source de votre classe, s'il n'est pas présent!

1
WebComer

modifiez le contenu de la balise du fichier .iml du module comme ci-dessous. Ça marche pour moi.

<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$/src/main/Java" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/test/Java" isTestSource="true" />
  <excludeFolder url="file://$MODULE_DIR$/target" />
</content>
0
Frank Hon

Simplement 'Construire> Rebuild Project' a fonctionné pour moi.

0
jgpATs2w

Le redémarrage d'IDEA a résolu le problème pour moi.

0
greene