Al usar este enfoque a continuación, configurando jUnit con Suites. Tenemos el problema cuando todo @BeforeClass en cada Testclass se ejecutará antes de que las pruebas comiencen a ejecutarse. (Para cada n archivo TestClass se ejecuta @BeforeClass, luego de que se hayan ejecutado, comenzó a ejecutar los primeros archivos MyTest.class @Test)JUnit 4 @BeforeClass & @AfterClass cuando se utilizan Suites
Esto hará que asignamos muchos recursos y memoria. Mi opinión es que debe estar mal, ¿no se debe ejecutar cada @BeforeClass solo antes de que se ejecute la clase de prueba real, no cuando se inicia 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
...
¿Son ejecutados antes de las pruebas de cada uno clases, o son todos ejecutados solamente antes de la primera (pero entonces el segundo se ejecuta sin ejecutar todas @BeforeClass de nuevo)? Esto último parece correcto ya que @BeforeClass se ejecuta antes de los métodos @Test en esa prueba. Supongo que la cantidad de memoria no cambiará, a menos que la limpie después de las pruebas de cada clase (y esto solo ocurre después de que se complete todo el paquete). –
Lo que obtengo ahora es que cada @BeforeClass se ejecuta primero. @BeforeClass (Mytests) @BeforeClass (Mytests2) @test (MyTests) @test (MyTests2) En mi punto de vista, esto no es correcto. Corrígeme si me equivoco, pero algo debe configurarse incorrectamente para causar este problema. –