IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tests et Performance Java Discussion :

Lancer des tests JUnit depuis une classe de test [JUnit]


Sujet :

Tests et Performance Java

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Lancer des tests JUnit depuis une classe de test
    Bonjour à tous

    Avec JUnit 4, je cherche à lancer des tests à partir d'une classe TestLauncher qui va lancer tous les tests. Facile vous allez me dire, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @RunWith(Suite.class)
    @SuiteClasses(value={
    Montest1.class,
    Montest2.class
    })
    public class TestLauncher extends TestCase {
    ...
    }
    Et à partir de là le lancement de TestLauncher lancera tous les tests. Seulement voilà, le problème c'est que je ne connais pas à l'avance les classes de test qui seront lancées, celles-ci sont contenues dans une liste qui a été initialisée dans un fichier Spring. Or dans l'exemple, les noms de mes classes de test sont inscrites en dur dans la classe.

    Une autre solution plus adéquate s'offrait à moi : créer manuellement ma suite de test et la lancer, donc de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    TestSuite suite=new TestSuite();
    for (Iterator it=monPackage.getListeTests().iterator();it.hasNext();) {
        TestCase test=(TestCase)it.next();
        suite.addTest(test);
    }
    TestResult result=new TestResult();
    suite.run(result);
    (explication : je parcoure ma liste de tests et j'ajoute un a un ces tests à ma suite puis je lance ma suite)

    Problème : la méthode run lance correctement le setUp de ma classe de test mais ne lance pas les tests !

    Ca fait 2 jours que je bloque là dessus et franchement je comprends pas du tout pourquoi ça fonctionne pas !

    Quelqu'un a-t-il déjà eu ce problème ou bien aurait une idée à me proposer ?

    D'avance, merci

  2. #2
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bon j'ai trouvé une solution mais qui est un peu hard, c'est de réécrire la méthode run pour que celle-ci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public TestResult launchTests() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, SQLException, IOException, Exception {
      //On lance le setUp
      setUp();
      //Récupération de toutes les méthodes de la classe de test
      Method[] listeMethodes=this.getClass().getDeclaredMethods();
      //Pour chaque méthode
      for (int i=0; i<listeMethodes.length;i++) {
        //Si le nom commence par "test" -> c'est un test -> on l'exécute
        if (listeMethodes[i].getName().startsWith("test"))
          listeMethodes[i].invoke(this, new Object[0]);
      }
      return new TestResult();
    }
    Si quelqu'un a mieux à proposer je suis preneur, sinon je me contenterait de ça, mais c'est quand même dingue que JUnit nous ponde une méthode run qui run rien du tout !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD16] Intercepter des Evenements Windows depuis une classe
    Par dahlback dans le forum WinDev
    Réponses: 8
    Dernier message: 15/01/2013, 13h55
  2. Intercepter des Evenements Windows depuis une classe
    Par jimmypage dans le forum WinDev
    Réponses: 4
    Dernier message: 13/07/2012, 17h01
  3. Passer des arguments à une classe de test Junit
    Par safi11 dans le forum Général Java
    Réponses: 8
    Dernier message: 03/01/2012, 15h30
  4. Réponses: 4
    Dernier message: 27/07/2007, 18h18
  5. lancer un executable depuis une classe java
    Par k6971 dans le forum Langage
    Réponses: 4
    Dernier message: 21/05/2007, 22h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo