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
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
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.............. } }
J'ai essayer cette solution mais quand je mets :
J'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part suite.addTest(new TestSuite(Class1.class));
The constructor TestSuite(Class<StringTest>) is undefined
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....
Je me suis tromper dans l'erreur, c'est :
C'était une faute de recopie de ma part (ma classe de test s'appellée StringTest)The constructor TestSuite(Class<Classe1>) is undefined
Donc pour résumer, il me met cette erreur alors que la classe existe
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!
Nom de la classe test :
Mon morceau de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public class StringTest
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
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)); } }
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.
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 :
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
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 fait de même pour chaque série de tests
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); } }
Pour exécuter ensuite les tests, il faut déclarer toutes les séries de tests :
Ainsi qu'une variable "TestResult" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 serieTests1.AllTests tests1 = new serieTests1.AllTests(); serieTests2.AllTests tests2 = new serieTests2.AllTests();
Pour compter le nombre de tests d'une série :
Code : Sélectionner tout - Visualiser dans une fenêtre à part TestResult result = new TestResult();
Pour exécuter une série de tests :
Code : Sélectionner tout - Visualiser dans une fenêtre à part tests1.suite().countTestCases();
Pour compter le nombre de tests exécuter :
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part result.runCount();
Pour compter le nombre d'échecs :
Pour compter le nombre d'erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part result.failureCount();
Pour récupérer la liste des tests qui ont échoué
Code : Sélectionner tout - Visualiser dans une fenêtre à part result.errorCount();
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.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()
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()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager