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?
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.
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.
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
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
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é.
Essayez D'Ajouter
@Test au-dessus de la méthode pour le test comme ça
@Test
public void testParse()
{
}
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})
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.
quand je fais face à ce problème, Je ne fais qu'éditer le fichier et le sauvegarder... fonctionne comme le charme
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.
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.
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é.
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.
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!
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 .
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.
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.
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.
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...
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
ç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.
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.*
.
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>
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.
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();
}
}
à 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.
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.
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..
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