web-dev-qa-db-fra.com

junit: aucun test trouvé

J'ai hérité d'un projet Java et suis nouveau dans le développement Java. Je me sens un bon moyen de me familiariser avec le code est d’écrire quelques tests autour de lui. J'écris mon code en utilisant IntelliJ.

Mon projet existant a une structure de dossier comme celle-ci:

/myProject
  /src
    /main
      /Java
        /com.lexcorp
          /core
            /email
              /providers
                emailProvider.Java

J'ai créé un nouveau projet qui tiendra des tests pour ce projet. Je souhaite que ce projet organise à la fois des tests unitaires et des tests d'intégration. Actuellement, mon nouveau projet a une structure comme celle-ci:

/myProjectTests
  /src
    /main
      /Java
        /com.lexcorp.core.email.providers
          emailProviderTest.Java

Le fichier emailProviderTest.Java se présente comme suit:

package com.lexcorp.core.email.providers;

import junit.framework.TestCase;
import org.junit.Test;

public class EmailProviderTest extends TestCase {

    private final String username = "[testAccount]";

    private final String password = "[testPassword]";

    @Test
    public void thisAlwaysPasses() {
        assertTrue(true);
    }
}

Ce projet a une configuration Run/Debug avec les propriétés suivantes:

  • Type de test: Tout en paquet
  • Recherche de tests: Dans tout le projet

Lorsque j'exécute cette configuration, j'obtiens une erreur qui dit:

junit.framework.AssertionFailedError: No tests found in com.lexcorp.core.email.providers.EmailProviderTest
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.Java:84)
    at org.junit.runners.Suite.runChild(Suite.Java:127)
    at org.junit.runners.Suite.runChild(Suite.Java:26)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.Java:238)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.Java:63)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.Java:236)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.Java:53)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.Java:229)
    at org.junit.runners.ParentRunner.run(ParentRunner.Java:309)
    at org.junit.runner.JUnitCore.run(JUnitCore.Java:160)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.Java:74)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.Java:202)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.Java:65)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:120)

Je ne comprends pas pourquoi je reçois une erreur qui se résume à: "Aucun test trouvé". Bien que les structures de mon projet diffèrent, les structures de dossiers du système d'exploitation correspondent (ce qui est une autre source de confusion pour moi). Pourquoi ai-je cette erreur et comment puis-je la corriger? Merci beaucoup!

50
JQuery Mobile

Je devenais trop erreur

junit.framework.AssertionFailedError: Aucun test trouvé dans ... 

Mais j'ai oublié de préciser 

defaultConfig {
    ...
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}

Après les projets de synchronisation, il a trouvé des tests. Alors peut-être que ça aide quelqu'un d'autre

111
BlackRainbow

L'extension junit.framework.TestCase est l'ancienne approche JUnit 3 d'implémentation de scénarios de test qui ne fonctionne pas car aucune méthode ne commence par les lettres test. Puisque vous utilisez JUnit 4, déclarez simplement la classe en tant que

public class EmailProviderTest {

et la méthode de test sera trouvée à partir de l'annotation @Test.

Lire: JUnit confusion: utiliser 'extend Testcase' ou '@Test'?

30
Reimeus

Je devenais ça aussi: 

junit.framework.AssertionFailedError: Aucun test trouvé dans ...

Résolu en renommant la méthode de test de method1

@Test
public void method1(){
    // Do some stuff...
}

vers testMethod1

@Test
public void testMethod1(){
    // Do some stuff...
}
10
lidox

si vous utilisez jUnit 4, n'utilisez pas extend TestCase , supprimez cette erreur corrigée.

6
user1865456

J'ai eu le même problème, dans Intellij IDEA, pour le framework Java . 

  • la classe héritée de TestCase
  • J'ai importé junit.framework.TestCase 
  • J'ai ajouté la décoration @Test

Mais j'ai fait une erreur: le nom de la méthode n'a pas commencé par "test" , en fait c'était:

@Test
public void getSomethingTest(){

et quand je l'ai changé en:

@Test
public void testGetSomethingTest(){

J'ai résolu: l'exécuteur a finalement pu reconnaître cette méthode comme méthode de test . Je n'ai rien changé d'autre.

0
RobyB

Je l'ai eu lors de l'utilisation du fournisseur de données et l'un des paramètres avait un nouveau caractère de ligne, comme ceci:

@DataProvider
public static Object[][] invalidAdjustment() {
    return new Object[][]{
            {"some \n text", false},
            };
}

Supprimer le \n a résolu le problème

0
Andrey Marchuk

Dans mon cas, j'avais besoin de junit4-version.jar dans le classpath de la tâche junit et aussi:

ant-version.jar
ant-junit-version.jar
ant-junit4-version.jar

à la bibliothèque de mon installation de fourmis (/usr/share/ant/lib).

Je recevais l'erreur " junit.framework.AssertionFailedError: aucun test trouvé dans ... " alors que je n'avais pas eu ant-junit4-*version*.jar au bon endroit.

J'ai corrigé cela en installant le paquet ant-optional debian/ubuntu:

apt-get install ant-optional
0
Lincoln