Lorsque vous utilisez cette méthode ci-dessous, configurez jUnit avec Suites. Nous avons eu le problème quand tout @BeforeClass dans chaque Testclass sera exécuté avant que les tests commencent à s'exécuter. (Pour chaque n fichier TestClass, @BeforeClass s'exécute, puis après exécution, il commence à exécuter les premiers fichiers MyTest.class @Test)JUnit 4 @BeforeClass & @AfterClass lors de l'utilisation des suites
Cela entraîne l'allocation de beaucoup de ressources et de mémoire. Je pensais que cela devait être faux, chaque @BeforeClass ne devrait-elle pas être exécutée avant l'exécution de la classe de test, et non lors du démarrage de la suite?
@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 que les tests de chaque classe, ou sont tous exécutés seulement avant la première (mais le second est exécuté sans courir tous @BeforeClass encore)? Ce dernier semble correct car @BeforeClass est exécuté avant les méthodes @Test de ce test. La quantité de mémoire ne changerait pas, à moins que vous ne nettoyiez après les tests de chaque classe (et ceux-ci ne se produisent également qu'une fois la suite complétée). –
Ce que je reçois en ce moment, c'est que chaque @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 mal configuré pour causer ce problème. –