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 partThe constructor TestSuite(Class<Classe1>) is undefined(ma classe de test s'appellée StringTest)
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()
Partager