Je voudrais créer une suite de test junit en utilisant JUnit 4 où les noms des classes de test à inclure ne sont pas connus avant l'exécution de la suite de test.
Dans JUnit 3, je pouvais faire cela :
public final class MasterTester extends TestCase
{
/**
* Used by junit to specify what TestCases to run.
*
* @return a suite containing what TestCases to run
*/
public static TestSuite suite() {
TestSuite suite = new TestSuite();
for(Class<?> klass : gatherTestClasses()) {
suite.addTestSuite(klass);
}
return suite;
}
}
et laisser les gatherTestClasses()
permet de déterminer les classes de test à exécuter.
Dans JUnit 4, le documentation dit d'utiliser une annotation : @SuiteClasses({TestClass1.class, TestClass2.class...})
pour construire ma suite de tests. Il y a de nombreuses réponses SO qui montre comment faire. Malheureusement, les exemples que je vois ne semblent pas permettre de passer une liste de TestClasses générée dynamiquement.
Ce site Réponse SO a suggéré que je devrais sous-classer BlockJUnit4ClassRunner
ce que je ne veux pas faire.
Les suites de test spécifiées dynamiquement semblent être quelque chose qui doit se trouver quelque part dans JUnit 4. Quelqu'un sait-il où ?