web-dev-qa-db-fra.com

Classe introuvable: suite de tests vide dans IntelliJ

Je viens de commencer le programme d'informatique à mon collège et j'ai quelques problèmes avec IntelliJ. Lorsque j'essaie d'exécuter des tests unitaires, je reçois le message

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

Je vois aussi un message intitulé "Aucun test n'a été trouvé" sur le côté gauche de mon écran. Mon code de test est ici:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

Et mon code de projet est ici:

package edu.macalester.comp124.hw0;

import Java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

Comment puis-je obtenir mes tests au travail? Merci d'avance. J'utilise la version la plus récente d'IntelliJ IDEA CE.

145
arnbobo

Donc, mon problème ici était avec les noms de dossiers. J'avais appelé mon dossier de code Classes 2016/2017, ce qui n'a pas plu à IntelliJ. Supprimez simplement la barre oblique (ou un autre caractère incriminé dans le chemin), réimportez le projet et vous serez prêt à partir!

9
arnbobo

Avait le même message. J'ai dû supprimer la configuration Run/Debug. 

Dans mon cas, j’ai exécuté le test unitaire en tant que test local auparavant. Après cela, j'ai déplacé mon test vers le package androidTest et j'ai essayé de l'exécuter à nouveau. Android Studio s'est souvenu de la dernière configuration d'exécution et a donc essayé de l'exécuter à nouveau comme test d'unité locale, ce qui a généré la même erreur.

Après avoir retiré la configuration et relancé le test, il a généré une nouvelle configuration et a fonctionné.

 enter image description here

99
com2ghz

Je suis allé à 

File -> Invalidate Caches/Restart...

et puis cela a fonctionné pour moi.

42
user674669

J'ai eu le même problème. J'ai reconstruit le projet et cela m'a aidé.

Allez à Build -> Reconstruire le projet

Ensuite, si vous utilisez l'outil Maven, je vous recommande d'utiliser l'option Réimporter tous les projets Maven} _


Si cela ne vous aide pas, essayez d'autres solutions possibles:

  • Accédez à Fichier _>> Invalidate Caches/Restart--> Invalidate and Restart

ou:

  • Dans la structure de votre projet Maven, src/main/Java, cliquez avec le bouton droit de la souris sur le répertoire Java et sélectionnez l'option Marquer le répertoire comme -> Racine des sources

    Faites de même avec le répertoire test afin: src/test/Java cliquez avec le bouton droit sur le répertoire Java et sélectionnez l'option Marquer le répertoire comme ->. Test Sources Racine

ou:

  • Allez à Exécuter -> Modifier les configurations et dans la section JUnit supprimez les configurations de test. Appliquer les modifications. Après, essayez de lancer vos tests. La nouvelle configuration devrait être créée automatiquement.

ou:

  • Accédez à Fichier -> Structure du projet}, sélectionnez Modules, puis sélectionnez le module approprié et accédez à l'onglet Chemins
    Options de vérification:
    Le bouton radio Utiliser le chemin de sortie de compilation du module devrait être sélectionné. 

    Le chemin de sortie doit être à l'intérieur de votre projet. De plus, Test output path doit figurer dans le répertoire de votre projet. Par exemple, il peut ressembler à ceci:
    Chemin de sortie: C:\chemin\vers\votre\module\votreModule \ cible\classes
    Test Chemin de sortie: C:\chemin\vers\votre\module\votreModule \ cible\classes de test

    Exclure les chemins de sortie devraient être désélectionnés.
33
Schakal

Cela peut également se produire si votre dossier de test a été importé en tant que module séparé (un petit carré apparaît sur l'icône du dossier dans la vue du projet).
Supprimez le module en sélectionnant le dossier de test dans la vue du projet et appuyez sur DEL.
Puis commencez votre test.
Si une boîte de dialogue contextuelle apparaît avec un message d'erreur indiquant qu'aucun module n'est sélectionné, spécifiez votre module racine dans la liste déroulante.

14
Tobi

J'ai eu un problème similaire après avoir démarré un nouveau projet IntelliJ. J'ai trouvé que le "chemin de sortie de compilation du module" pour mon module n'était pas correctement spécifié. Lorsque j'ai assigné le chemin dans le "chemin de sortie de compilation" du module à l'emplacement approprié, le problème a été résolu. Le chemin de sortie de la compilation est attribué dans les paramètres du projet. Sous Modules, sélectionnez le module impliqué et sélectionnez l'onglet Chemins ...

Chemins d'accès dans les paramètres du projet | Dialogue de modules

 screenshot

... J'ai envoyé la sortie du compilateur dans un dossier nommé "sortie" présent dans le dossier Projet parent.

12
DStanton

Dans mon cas, tout était au bon endroit, mais je travaillais sur une bibliothèque Java with kotlin . J'ai juste oublié d'appliquer le plugin:

apply plugin: 'kotlin-Android'

Et maintenant, cela fonctionne comme prévu maintenant.

9
crgarridos

Dans Android Studio 3.0 +, les tests d'interface utilisateur sont parfois interprétés comme des tests unitaires et ils ne demandent pas de sélection de déploiement cible. Vous pouvez aller à Edit Configuration et le marquer comme test d’intégration et cela commencerait à fonctionner

7
Tushar Nallan

J'avais la même question lorsque j'importais des jar à partir de Maven, puis que je provoquais l'erreur empty-test-suite.

Dans mon cas, c'était parce que le maven réinitialisait les fichiers du module. Ce que j'ai résolu en effaçant ma configuration par défaut:

  1. Ouvrir Structure du projet avec shift-ctrl-alt-s raccourci

Screenshot of PModules Sources

  1. Examinez les modules> sources et remplissez le package de sources ou le package de test.
5
tyrantqiao

Cela se produira également lorsque votre module et/ou votre projet-jdk ne sont pas configurés correctement.

4
Maarten Dhondt

Le projet ou le module de réimportation peut résoudre le problème ..__ J'ai résolu ce problème en renommant le nom du paquet lors du développement. Mais les chemins out et test en sortie sont les anciens. Ainsi, intellij ne peut pas trouver la classe à partir de l’ancien chemin .. Le moyen le plus simple est donc de corriger le chemin de sortie et de tester le chemin de sortie.

 Intellij module setting

4
Bejond

J'ai eu le même problème et reconstruire/invalider le cache, etc. ne fonctionnait pas. On dirait que ce n'est qu'un bug dans Android Studio ...

Une solution temporaire consiste simplement à exécuter vos tests unitaires à partir de la ligne de commande avec:

./gradlew test

Voir: https://developer.Android.com/studio/test/command-line.html

3
Marius

J'ai eu le même problème (Android Studio 3.2 Canary 4) et j'ai essayé la plupart des suggestions décrites dans d'autres réponses - sans aucun succès. Notez que ceci est arrivé après que j'ai déplacé le fichier de test dans le dossier androidTest. Il était toujours indiqué dans les configurations d'exécution en tant que test au lieu d'un test instrumenté.

Je finis par créer un nouveau fichier:

  1. Créez une nouvelle classe de test instrumentée avec un nom différent.
  2. Copiez tout le code de votre classe.
  3. Exécuter.
  4. Supprimer l'ancienne classe.
  5. Renommez la nouvelle classe en nom souhaité.
3
Micer

Supprimer .idea et réimporter le projet SBT ont résolu ce problème pour moi.

2
jhegedus

J'ai eu le même problème. Dans mon cas, j'avais des classes de test dans un paquet/dossier en dehors du dossier principal. Mais lorsque j'ai vérifié la configuration d'exécution, il essayait toujours de rechercher des classes dans le dossier principal (et non dans mes paquets en dehors de main). Donc, si c'est le cas, vous devez soit déplacer vos packages à l'endroit indiqué par la configuration Run. Ou modifiez la configuration d'exécution pour qu'elle pointe vers vos packages.

1
mykey

J'ai essayé toutes les solutions mais aucune d'entre elles n'a aidé. À la fin, je lance le test en mode débogage et .... ça commence à fonctionner. Peut-être que la cache d'un maven a été éclaircie. C'est difficile à dire. Ça marche. Essayez mvn test -X

1
radekpakula

Cela peut arriver (au moins une fois pour moi;) après l’installation de la nouvelle version d’IntelliJ et que les plugins IntelliJ n’ont pas encore été mis à jour.

Vous devrez peut-être manuellement faire le Check for updates… à partir du menu d’Aide IntelliJ.

1
Peter Lamberg

Cliquez simplement avec le bouton droit de votre souris sur le fichier dans la fenêtre Projets et sélectionnez 

"Run YourTest ".

Tout commence bien maintenant, probablement parce que la configuration d’exécution défectueuse est en cours de reconstruction.

1
WebComer

C'est probablement parce que le dossier n'est pas défini comme source de test, ce qui peut être fait via Paramètres du module> Modules.

1
noego

Votre test nécessite-t-il un appareil Android (émulateur ou matériel)?
Si c'est le cas, il s'agit d'un "test instrumenté" et réside dans "nom-module/src/androidTest/Java /".
Dans le cas contraire, il est appelé "test d'unité locale" et réside dans "nom-module/src/test/Java".

https://developer.Android.com/training/testing/start/index.html

J'ai eu la même erreur parce que j'avais écrit un test unitaire local, mais il a été placé dans le dossier pour les tests instrumentés. Déplacer le test d'unité locale vers le dossier "src/test/Java" l'a corrigé.

1
Patrick

Dans mon cas, il y avait un problème avec le nom du test :).

Si name était: dummyNameTest, aucun test n'a été trouvé, mais dans le cas où testDummyName tout allait bien

1
Inweo

Dans mon cas, IntelliJ n'a pas compilé les sources de test pour une raison étrange. J'ai simplement modifié la configuration de construction et ajouté l'objectif maven clean test-compile dans la section Before launch

1
vatbub

Recevait la même erreur. Mon appareil n'était pas connecté au studio Android. Quand je me suis connecté au studio. Ça marche. Cela résout mon problème.

1
Aman Srii

Dans la structure de votre projet Maven, cliquez avec le bouton droit de la souris sur le répertoire Java et sélectionnez l’option Marquer le répertoire comme -> Sources Root.

De même, faites de même avec le répertoire test pour: src/test/Java, cliquez avec le bouton droit de la souris sur le répertoire Java et sélectionnez l'option Marquer le répertoire comme -> Sources de test, racine

Travaillé pour moi :-)

1
krishna Murari

Dans mon cas, le problème a été résolu en allant dans mon build.gradle et en changeant 

dependencies {
    testImplementation 'junit:junit:4.12'
}

à 

dependencies {
    testCompile 'junit:junit:4.12'
}
1
bremen_matt

Pour moi, le projet a été compilé en dehors du projet. Je viens de changer le chemin… .. Pour changer le chemin (j'utilise mac).

  • Allez dans Fichier -> Structure du projet
  • Allez au module sur le côté gauche.
  • Sélectionnez les chemins, sélectionnez le bouton radio (utilisez le chemin de sortie de compilation du module)
  • Indiquez le chemin de sortie et le chemin de sortie de test dans votre projet.
  • Désélectionnez Exclure les chemins de sortie.
  • Allez dans Fichier -> Cliquez sur Invalidate Cache et redémarrez
0
Mukul Aggarwal

Si le projet a un problème de compilation, les tests risquent de ne pas être exécutés . Donc, commencez par construire le projet en tant que Build -> Build Project .

0
swapnil

résolu en exécutant manuellement la tâche testClasses avant d'exécuter le test unitaire.

0
landerlyoung

Mon correctif pour ce problème était avec les noms de dossier et les chemins.

Mon test manquait/Java/dossier pour une raison quelconque et IntelliJ n’aimait pas cela.

ainsi de ../test/com /.. à ../test/Java/com/..

et c'est ok

0
Evgeni Atanasov

Pour moi, c'était parce que mon projet était en train d'être compilé dans un répertoire en dehors du projet. Dans les chemins, les chemins de sortie étaient\production\nom_projet et\test\nom_projet qui les plaçait dans C:\production\nom_projet. Les remplacer par le chemin complet du projet a permis à mes tests d’accéder aux fichiers de classe.

0
seharri

Marquez votre paquet/répertoire en tant que sources de test dans votre IntelliJ IDEA.

0
Luis Camargo

Même problème ici en utilisant IDEA 15.0.6, et rien ne m'a aidé, sauf lorsque j'ai renommé le paquet dans lequel se trouvait la classe de test. cache.

0

Ce qui a fonctionné pour moi a été un clic droit sur le Project folder -> Maven -> Generate Sources and Update Folders

0
jsmiao

Tout d’abord, nous devons comprendre pourquoi cela se produit et le message d’erreur est clair:

Le processus est terminé avec le code de sortie 1 Classe non trouvée: "edu.macalester.comp124.hw0.AreaTest" Suite de test vide.

Cela se produit donc principalement lorsque, après la création de la classe de test unitaire, nous exécutons les méthodes (tests) individuellement avant de les exécuter à partir du niveau de la classe. C'est tout

0
Carlos Daniel

J'ai eu le même problème dans mon environnement aussi (MacOS). J'utilisais IntelliJ 2016. J'avais un projet de bibliothèque Java (gradle). 

Ce que j'ai fait était

  1. Projet ouvert/exporté d'une ancienne version d'IntelliJ (telle que IntelliJ14) . Cela s'est passé avec succès et j'ai vérifié en créant le projet et en exécutant un scénario de test.
  2. Ensuite, j'ai de nouveau importé ce projet via IntelliJ 2016 . Après cela, tout a bien fonctionné (construction et exécution du scénario de test).
0
udayanga