JUnit 4 @BeforeClass & @AfterClass lors de l'utilisation de Suites

Lors de l'utilisation de cette approche ci-dessous, par la mise en place de la jUnit avec des Suites. Nous avons eu le problème lors de toutes les @BeforeClass dans tous les Testclass seront exécutées avant les tests commence à s'exécuter.
(Pour chaque n TestClass fichier de l' @BeforeClass s'exécute, puis après ils ont execute, il a commencé à exécuter la première MyTest.class les fichiers @Test)

Ce sera la cause que nous allouer beaucoup de ressources et de mémoire.
Ma pensée était qu'il doit être mauvais, ne devrait-on pas chaque @BeforeClass exécuter seulement avant le testclass est exécuté, pas quand la Suite commencé?

@RunWith(Suite.class)
@Suite.SuiteClasses({ MyTests.class, Mytests2.class, n1, n2, n })
public class AllTests {
    //empty
}


public class MyTests {  //no extends here
    @BeforeClass
    public static void setUpOnce() throws InterruptedException {
        ...
    @Test
        ...

public class MyTests2 {  //no extends here
    @BeforeClass
    public static void setUpOnce() throws InterruptedException {
        ...
    @Test
        ...
  • Sont-ils exécutés avant chacune des classes de tests, ou sont toutes exécutées seulement avant le premier (mais le deuxième est exécuté sans courir tous @BeforeClass de nouveau)? Celui-ci ne semblent OK comme @BeforeClass est exécuté avant le @de méthodes de Test dans le test. La quantité de mémoire ne changerais pas, je suppose, à moins que vous nettoyer après chaque classe de tests (et ce sont aussi les seuls qui se passe après la série complète est terminée).
  • Ce que j'ai droit maintenant, c'est que tous les @BeforeClass est exécuté en premier. @BeforeClass (Mytests) @BeforeClass (Mytests2) @Test (MyTests) @Test (MyTests2) À mon point de vue, ce n'est pas correct. Corrigez-moi si je me trompe, mais quelque chose doit être installé mal à cause de ce problème.