Bonjour à tous,

je souhaite lancer des tests au sein de mon application, et donc lancer des tests unitaires alors qu'elle est lancée.


Voici le code de lancement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
TestResult result = new TestResult();
    AllTests.suite().run(result);
 
 
    logger.info(result.runCount()+" tests executés");
    logger.info(result.errorCount()+" tests en erreur");
Pour pouvoir lancer des tests Junit4 en les chargeant dynamiquement je n'ai trouvé que cette solution, une classe spéciale que voici :

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
31
32
 
 
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( {
	IntTestRfodst.class,
	IntTestCabacd.class,
	IntTestCabact.class,
 
//....
//liste de toute mes classes de tests
//....
IntTestRfotie.class,
	IntTestRfotiv.class,
	IntTestRfotli.class
 
})
 
 
public class AllTests {
 
	public static Test suite() {
        return new JUnit4TestAdapter(AllTests.class);
    }
 
}
En gros cela me permet de faire un package de toutes mes classes et de les lancer comme présenté en haut.

C'est ici que je suis coincé : chaque classe de test hérite d'une classe générique qui contient réellement les tests. La classe donnée ne contient qu'une seule méthode préfixée par @Tests. 9 autres méthodes de tests générique sont dans la classe mère.

Quand je lance ce code, il tourne, mais ne lance les test que directement dans la classe ajoutée dans la suite, pas celle héritée de sa classe mère.

Pourtant quand je lance les mêmes classe de tests via ANT en dehors de mon programme, tout les tests sont bien lancés.

Une idée ? Je suppose que c'est pointu, mais si quelqu'un à une idée ou à déjà rencontrée ce problème. Je continue à chercher de mon côté.

Cordialement,

Adam