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 :

[junit 4] Tests automatique à partir d'une autre classe [JUnit]


Sujet :

Tests et Performance Java

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut [junit 4] Tests automatique à partir d'une autre classe
    Bonjour,

    J'ai créer des tests que je lance avec eclipse, et mon problème, c'est que je voudrai lancer ces tests automatiquement à partir d'une autre classe.

    Est-ce que quelqu'un aurai une solution pour moi ?

    D'avance merci

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Oui, pourquoi pas, lol!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class AllTests {
     
    	public static Test suite() {
     
    		TestSuite suite = new TestSuite("Test Groupee");
                    suite.addTest(new TestSuite(Class1.class));
                    suite.addTest(new TestSuite(Class2.class));
     
                     //ETC..............
            }
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    J'ai essayer cette solution mais quand je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    suite.addTest(new TestSuite(Class1.class));
    J'ai cette erreur :

    The constructor TestSuite(Class<StringTest>) is undefined

  4. #4
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Euh tu le fais exprès la?? Ta une class qui s'appelle Class1 ou non?

    Faut mettre le nom de tes classes de test à la place de class1, class2, class....

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Je me suis tromper dans l'erreur, c'est :

    The constructor TestSuite(Class<Classe1>) is undefined
    C'était une faute de recopie de ma part (ma classe de test s'appellée StringTest)

    Donc pour résumer, il me met cette erreur alors que la classe existe

  6. #6
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Peux-tu mettre exactement le code que tu essayes?

    As tu bien lu mon message précedent? Car si ce n'est pas le cas relis le bien je ne vais pas me répéter X fois!

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Nom de la classe test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class StringTest
    Mon morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class AllTests {
       public static Test suite() {
          TestSuite suite = new TestSuite("Test Groupee");
          suite.addTest(new TestSuite(StringTest.class));
       }
    }
    Avec JUnit 3.X, il me semble que ca marche, mais la j'utilise JUnit 4 et StringTest n'hérite pas de TestCase avec cette version de JUnit

  8. #8
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Ah ok. Ton probleme vient donc de ta version de JUnit, si StringTest n'hérite pas de TestCase alors il est peu problable que ma méthode marche étant donnée que j'utilise Junit3.

  9. #9
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci quand même

  10. #10
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Voici ma solution :


    Dans un premier temps, il faut créer un package par série de tests à exécuter.
    On crée ensuite différentes classes de tests comme si dessous :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    package serieTests1;
     
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
     
    public class MaClassTests1 {
    	// Déclaration des variables de tests
     
    	@Before
    	public void setUp() throws Exception {
    		// Initialisation des variables de tests
    	}
     
    	@After
    	public void tearDown() throws Exception {
    		// Libération des variables de tests
    	}
     
    	@Test
    	public void maMethodeTest1() {
    		// Réalisation d'une série de tests
    	}
     
    	@Test
    	public void maMethodeTest2() {
    		// Réalisation d'une autre série de tests
    	}
    	... // Et ainsi de suite
    }
    On créer ensuite une classe qui regroupe la série de tests qui se nomme obligatoirement AllTests :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    package serieTests1;
     
    import junit.framework.JUnit4TestAdapter;
    import junit.framework.Test;
     
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
     
    @RunWith(Suite.class)
    @SuiteClasses( {
    	MaClassTests1.class,
    	MaClassTests2.class,
    	... // Et ainsi de suite
    })
    public class AllTests {
    	public static Test suite() {
            return new JUnit4TestAdapter(AllTests.class);
        }
    }
    On fait de même pour chaque série de tests

    Pour exécuter ensuite les tests, il faut déclarer toutes les séries de tests :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	serieTests1.AllTests tests1 = new serieTests1.AllTests();
    	serieTests2.AllTests tests2 = new serieTests2.AllTests();
    Ainsi qu'une variable "TestResult" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	TestResult result = new TestResult();
    Pour compter le nombre de tests d'une série :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	tests1.suite().countTestCases();
    Pour exécuter une série de tests :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	tests1.suite().run(result);
    	// A chaque exécution d'un test,
    	// le résultat du test est concaténé aux résultats des tests précédent exécutés
    Pour compter le nombre de tests exécuter :


    Pour compter le nombre d'échecs :

    Pour compter le nombre d'erreurs :

    Pour récupérer la liste des tests qui ont échoué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	result.failures();
    	// Pour savoir si il reste des éléments dans l'énumération :
            enum.hasMoreElements()
    	// Renvoie une liste de valeur sous la forme de :
            Enumeration<TestFailure>
    	// Pour passer d'un élément à l'autre :
            enum.nextElement()
    	// Pour récupérer le test échoué :
            testFailure.toString()
    Pour récupérer la liste des tests erronés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    result.errors();
    	// Pour savoir si il reste des éléments dans l'énumération :
            enum.hasMoreElements()
    	// Renvoie une liste de valeur sous la forme de :
            Enumeration<TestFailure>
    	// Pour passer d'un élément à l'autre :
            enum.nextElement()
    	// Pour récupérer le test échoué :
            testFailure.toString()

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

Discussions similaires

  1. Compiler une classe à partir d'une autre classe
    Par VIP-Slax dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2007, 17h16
  2. probleme ecouter un panel a partir d une autre class
    Par sneb5757 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 20/03/2007, 11h49
  3. Réponses: 10
    Dernier message: 17/11/2006, 15h20
  4. [JtextArea] Y accéder à partir d'une autre classe
    Par harris_macken dans le forum Composants
    Réponses: 16
    Dernier message: 12/06/2005, 00h27
  5. Réponses: 22
    Dernier message: 03/02/2005, 16h43

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