Aucun test n'a été trouvé avec le "JUnit 4"

mon test Java a bien fonctionné depuis Eclipse. Mais maintenant, quand je relance test à partir du menu run, je reçois le message suivant:

No tests found with test runner 'JUnit 4'

dans le fichier .classpath j'ai tous les fichiers jar , et à la fin ont:

<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Comment puis-je résoudre cette erreur et relancer les tests?

95
demandé sur Roman C 2010-02-25 12:15:58

30 réponses

ça m'est arrivé. Reconstruire ou redémarrer Eclipse n'a pas aidé.

je l'ai résolu en renommant l'une des méthodes de test pour commencer "..."(Style JUnit3) et puis tous les tests sont trouvés. Je l'ai rebaptisé comme avant, et ça marche toujours.

141
répondu Germán 2012-12-14 17:56:50

quand nous obtenons ces erreurs, il semble Qu'Eclipse est juste confus. Redémarrez Eclipse, rafraîchissez le projet, nettoyez-le, laissez Eclipse le reconstruire, et réessayez. La plupart du temps qui fonctionne comme un charme.

41
répondu JamesG 2010-02-27 05:11:03

Dans le menu contextuel de votre "test" répertoire sélectionnez "Build path" - > Utiliser comme une source de dossier". Eclipse devrait voir vos unitTests.java fichiers en tant que fichiers sources. Attention 'No JUnit tests found' se produit parce qu'il n'y a pas de tests.les fichiers de classe dans votre "construction" répertoire

34
répondu Dima 2011-04-11 09:47:36

vérifiez si votre classe de test étend "TestCase". dans l'affirmative, supprimer cette clause. Votre classe n'a pas besoin de s'étendre de la classe "TestCase". C'est la plupart des cas que j'ai rencontrés.

public class MyTestCase extends TestCase{
  @Test
  public void checkSomething() {
    //...
  }
}
//Result> AssertionFailedError: No test Found in MyTestCase

après le cas D'essai devrait être amende.

public class MyTestCase {
  @Test
  public void checkSomething() {
    //...
  }
}
//Works fine
28
répondu nephilim 2011-02-11 01:29:09

je faisais face au même problème et je l'ai débogué à de mauvais exemples sur le web et les internes de junit. Fondamentalement, ne faites pas étendre votre classe TestCase comme certains exemples le montrent pour Junit 4.x. Utilisez une certaine convention de nommage Test ou si vous voulez avoir une annotation vous pouvez utiliser @RunWith(JUnit4.classe.)

si vous avez besoin d'accès pour faire valoir des méthodes étendre affirmer ou utiliser des importations statiques.

si votre classe étend TestCase alors Pair si vous utilisez Junit 4 Runner il sera exécuté comme 3. C'est parce que dans le code d'initialisation il y a la détection:

voir JUnit3Builder et les lignes:

boolean isPre4Test(Class<?> testClass) {
    return junit.framework.TestCase.class.isAssignableFrom(testClass);
}

ceci retourne vrai et le test de compatibilité junit4 ne sera pas essayé.

27
répondu toomasr 2011-01-20 14:03:21

Essayez D'Ajouter

@Test au-dessus de la méthode pour le test comme ça

@Test
public void testParse()
{

}
5
répondu Mike Choi 2012-11-15 03:34:14

Pas de testsuits dans JUnit4. Utilisez les annotations à la place ou utilisez les anciennes conventions de noms JUnit3.

exemple:

@RunWith(Suite.class)
@SuiteClasses({YourClassWithTests.class})
4
répondu Roman C 2012-03-21 21:24:29

j'ai trouvé la réponse:

j'ai eu cette erreur quand j'ai exécuté le test autonome de eclipse (clic droit sur la méthode et choisir d'exécuter comme test junit),

quand j'ai exécuté la classe complète comme junit test le test exécuté correctement avec les paramètres.

4
répondu Eyal Zamir 2013-12-08 13:27:43

quand je fais face à ce problème, Je ne fais qu'éditer le fichier et le sauvegarder... fonctionne comme le charme

3
répondu Mahesh 2012-07-31 06:06:21

cela m'est arrivé aussi. J'ai essayé de redémarrer Eclipse et j'ai aussi préfixé mes méthodes de test avec des tests. Ni travaillé.

l'étape suivante travaillée: Changez toutes vos méthodes de test présentes dans @Beareclass et @AfterClass en méthodes statiques.

c'est-à-dire si vous avez votre méthode d'essai dans le format ci-dessous:

@BeforeClass
public void testBeforeClass(){
}

puis le changer en:

@BeforeClass
public static void testBeforeClass(){
}

ça a marché pour moi.

3
répondu revindran 2012-07-31 23:09:50

mon problème était que la déclaration import org.junit.Test; a disparu (ou n'a pas été ajoutée?). Après l'avoir ajouté, j'ai dû supprimer une autre déclaration import (L'éclipse vous indiquera laquelle) et tout a commencé à fonctionner à nouveau.

3
répondu Sergii 2012-12-14 17:00:45

très tard mais ce qui a résolu le problème pour moi était que mes noms de méthode d'essai ont tous commencé par des lettres majuscules: "public void Test". Faire le t inférieur cas a travaillé.

3
répondu Josh T 2013-04-07 18:39:26

j'ai essayé la solution de Germán. Cela a fonctionné pour toutes les méthodes de ma classe mais j'ai beaucoup de classes dans mon projet.

alors j'ai essayé de supprimer de build path et puis de le rajouter. Il a parfaitement fonctionné.

J'espère que ça aidera.

2
répondu Footix29 2010-06-20 09:39:52

encore une autre solution possible que je jetterai dans le ring: Je n'ai pas pu lancer la classe test NI depuis la fenêtre editor, ni depuis L'Explorateur de paquets, mais en cliquant avec le bouton droit de la souris sur le nom de la classe dans la vue de contour et en sélectionnant Run car JUnit Test a fonctionné... Allez comprendre!

2
répondu Matthew Wise 2015-02-04 15:03:49

peut être votre configuration de Lancement de JUnit était pour une classe de test individuelle, et vous avez en quelque sorte changé cette configuration pour "exécuter tous les tests dans un dossier source, un paquet ou un projet"

mais cela pourrait déclencher le message d'erreur" No tests found with test runner 'JUnit 4'".

ou vous avez fait une modification dans votre classe de test, en supprimant l'annotation @Test .

Voir cette page wiki .

1
répondu VonC 2010-02-25 09:46:11

j'ai également fait face à la même question lors de L'exécution du test JUnit. J'ai résolu cela en plaçant l'annotation @Test juste au-dessus de la fonction de test principale.

1
répondu Rajith 2011-07-14 07:32:34

ce qui a résolu mon cas était similaire à la réponse de @JamesG: J'ai redémarré Eclipse, reconstruit le projet, et l'ai rafraîchi; mais avant tout cela, j'ai fermé le premier projet (clic droit sur le projet dans l'Explorateur de paquets- > fermer le projet) et l'ai ensuite rouvert. Puis il a travaillé.

une solution de contournement que j'ai trouvée avant de trouver la solution ultime que je viens de décrire: copier la classe test, et lancer la classe test en tant que JUnit.

1
répondu cellepo 2012-07-31 00:47:33

vérifiez si le dossier dans lequel se trouvent vos tests est un dossier source. Si ce n'est pas le cas, cliquez sur le bouton droit de la souris et utilisez - le comme dossier source.

1
répondu Todor Kolev 2013-07-26 14:24:21

fermer et ouvrir le projet a fonctionné pour moi.

1
répondu user3022123 2014-01-06 03:53:50

Six ans plus tard ... et il y a encore des problèmes avec Eclipse et parfois ne pas trouver de JUnits.

dans mon Eclipse Mars 2 j'ai découvert qu'il ne reconnaîtrait pas les classes de test tirées de git s'il y a plus de 9 ou 10 @Test annotations dans le fichier. J'ai besoin de commenter tous les tests supplémentaires, lancer la classe de test, puis les décommenter et relancer la classe. Aller à la figure...

1
répondu SimonB 2016-06-01 08:57:10

votre projet Eclipse est basé à maven? Si c'est le cas, vous devrez peut-être mettre à jour la version m2eclipse.

juste une petite note: j'ai un projet en Eclipse qui est maven, et généré initialement en utilisant le " nouveau projet maven" assistant dans Eclipse. Je suis utilisation de JUnit 4.5 pour les essais unitaires, et pourrait très bien exécuter les tests à partir de la ligne de commande en utilisant maven, et essais individuels D'Eclipse en utilisant exécuter en tant que test JUnit.... Cependant, quand je essayé d'exécuter tous les tests de la projet en invoquant run comme JUnit test... sur le projet nœud racine, Eclipse se plaint " aucun test trouvé avec un Jun d'essai 4 ". Résolu par mise à niveau de m2eclipse le développement stable de construire à partir de la m2eclipse mise à jour du site (en particulier, I mise à niveau à partir de la version 0.9.8.200905041414 à la version 0.9.9.200907201116 dans Eclipse Galileo).

D'ici: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html

0
répondu b.roth 2010-02-25 09:22:04

ça m'est arrivé aussi. J'ai trouvé que dans Eclipse je n'ai pas fait un nouveau fichier de classe Java et c'est pourquoi il ne compilait pas. Essayez de copier votre code dans un fichier de classe java s'il n'y est pas déjà, puis compilez.

0
répondu Anna 2010-07-26 17:58:13

J'ai découvert Qu'Eclipse semble effectuer des tests de style JUnit 3 seulement si votre classe de test s'étend de TestCase . Si vous retirez l'héritage, les annotations ont marché pour moi.

Attention, vous devez importer statiquement toutes les méthodes requises assert* comme import static org.junit.Assert.* .

0
répondu Martin C. 2011-04-25 14:01:31

J'exécute aussi Eclipse avec Maven (m2e 1.4). Les tests se déroulaient avec Maven, mais pas avec Eclipse... même après plusieurs applications de Maven>Update project .

ma solution était d'ajouter quelques lignes dans le .classpath généré par m2e. Les lignes sont maintenant colle.

<classpathentry kind="src" output="target/test-classes" path="src/test/java">
  <attributes>
    <attribute name="optional" value="true"/>
    <attribute name="maven.pomderived" value="true"/>
  </attributes>
</classpathentry>
0
répondu pascal 2013-10-22 15:18:30

j'ai ce problème de temps en temps. La chose qui résout le problème le plus pour moi est d'exécuter le test de JUnit à partir des configurations D'exécution... s'assurer que JUnit 4 se positionne comme le coureur d'essai.

en général, je vois ce problème en essayant de courir comme... Test Junit à partir du menu contextuel de L'Explorateur de paquets. Si vous cliquez droit sur le code du test que vous essayez d'exécuter et au lieu de sélectionner Exécuter en tant Que... Vous sélectionnez exécuter des configurations... assurer la Project, Test Class et test runner sont positionnés correctement, cliquez sur apply, puis lancez works tout le temps pour moi.

0
répondu theINtoy 2014-09-22 14:49:16

j'ai commencé à travailler avec le sélénium et L'éclipse dans mon travail et je faisais mon premier test automatisé et j'ai supprimé du code @avant, @Test, et @après les notes et j'avais ce problème"aucun test trouvé avec coureur junit4".

ma solution c'était simplement d'ajouter à nouveau les notes @Before, @Test et @After et avec cela mon script fonctionnait. Il est important de ne pas supprimer cela du code.

il s'agit d'un test simple qui utilise Google pour rechercher quelque chose:

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;

import org.junit.*;

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class TestingClass {

    private WebDriver driver;
    //Creates an instance of the FirefoxDriver
    **@Before**
    public void SetUp() throws Exception {
        driver = new FirefoxDriver();
    }

    **@Test**   
    //Search using keyword through Google Search
    public void TestTestClass2 () throws Exception {
        driver.get("http://www.google.com.mx/");
        driver.findElement(By.name("q")).sendKeys("selenium");
        Thread.sleep(10000);
        driver.findElement(By.name("btnG")).click();
        Thread.sleep(10000);
    }

    //Kill all the WebDriver instances
    **@After**
    public void TearDown() throws Exception {
        driver.quit();
    }

}
0
répondu JuanTorre 2015-03-12 16:12:48

à L'aide de Scalaïde (3.0.4-2.11-20140723-2253-Typesafe) j'avais un problème similaire avec le menu contextuel Right Click Scala Test Class-> Run As -> Scala Junit Test .

j'ai essayé d'éditer la classe(mais pas pour un échec de compilation), nettoyer, fermer le projet, fermer Eclipse. Aucun de ceux-ci n'a fonctionné pour restaurer le menu contextuel pour les classes qui auparavant fonctionnaient bien. Les classes d'essai n'utilisent pas l'annotation @Test et utilisent plutôt l'annotation @RunWith(classOf[JUnitRunner]) en haut de la classe en utilisant Code ScalaTest.

quand j'ai essayé de choisir Scala Junit Test dans L'éditeur de lancement Run Configuration, j'ai reçu le dialogue de la question. La réponse de Footix29 était la clé pour moi.

j'ai remarqué que même si j'avais nettoyé mon projet quelques fois, mes classes dans le répertoire /bin n'avaient pas été reconstruites depuis longtemps.

Voici comment j'ai récupéré le menu contextuel, et j'ai pu relancer Scala Junit Test s:

  • manually a nettoyé les classes en supprimant le /bin/<package dir>* via Explorer
  • Project -> Clean ed le projet avec une reconstruction complète

je soupçonne qu'une édition de classe en général est capable de nettoyer un État d'éclipse enregistré et de le remettre en marche. Dans mon cas, toutes les classes ouvrières que j'avais essayées avaient échoué, donc la manual clean step était juste le marteau dont j'avais besoin. Cependant, d'autres les astuces qui affectent le concept D'Eclipse de l'état de chemin/construction de classe devraient également fonctionner.

de plus, je pense que ce comportement a été déclenché en partie par une tentative de reformuler une classe Scala en la renommant( ce à quoi l'IDE Scala Eclipse craint ), où tout le nettoyage après le changement de fichier initial est manuel. Il n'y avait pas d'erreurs de construction, mais il n'y avait pas non plus d'avertissements que je m'attendais à ce que quelque chose soit bloqué dans les informations de l'État de construction D'Eclipse.

0
répondu n0741337 2015-07-15 15:28:50

il y a une autre chance, vous pourriez avoir changé le test de Junit de la version inférieure(par exemple Junit 3) à Junit 4 . Est ainsi suivre les étapes ci-dessous: -

1. Right Click on class
2. Select Run as >> "Run Configurations"
3. Check your "Test Runner" option in new window
4. If it not same as maven change it for example change it as Junit 4.
0
répondu Kundan Atre 2015-08-11 06:40:57

clic droit sur le projet - > construire des dépendances - > supprimer ceux qui ont été exclus du chemin de construction - > cliquer OK

clic droit sur le projet -> Maven -> Update Project.

vous devriez être prêt à partir..

0
répondu MindBrain 2016-02-09 22:12:52

vous pouvez corriger ce problème en faisant comme suit:

  • clic droit sur le dossier nommé "Test" > chemin de compilation > utilisation comme Source Dossier
  • ou vous pouvez définir classpath comme: <classpathentry kind="src" path="src/test/java"/> . Vous remplacez "src / test / java" par votre pack test

ce problème est arrivé en raison de junit ne peut pas reconnaître votre code source :d

0
répondu Vu Truong 2016-04-28 03:54:09