He conseguido averiguar cómo hacer un TestSuite en jUnit 4, pero yo realmente echo de menos la v3 posibilidad de un ajuste de una suite en un TestSetup.

Cualquier ideas de cómo obtener algún @BeforeClass/@AfterClass el programa de instalación ejecuta para un conjunto de casos de prueba de jUnit 4?

I. e.

@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class, Test2.class})
public class MyTestSuite {
    @BeforeClass public static void setUpClass() {
        //Common initialization done once for Test1 + Test2
    }
    @AfterClass public static void tearDownClass() {
        //Common cleanup for all tests
    }
}

Lamentablemente el fragmento de código de arriba no funciona. @BeforeClass sólo funciona en cada una de las pruebas de la clase base.

InformationsquelleAutor Rasmus | 2011-07-05

1 Comentario

  1. 51

    Aquí es lo que tengo y funciona bien.

    import org.junit.AfterClass;
    import org.junit.BeforeClass;
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
    
    @RunWith(Suite.class)
    @SuiteClasses({ TestSuite1.class, TestSuite2.class })
    public class CompleteTestSuite {
    
        @BeforeClass 
        public static void setUpClass() {      
            System.out.println("Master setup");
    
        }
    
        @AfterClass public static void tearDownClass() { 
            System.out.println("Master tearDown");
        }
    
    }

    Aquí está mi paquete de prueba 1 (lo mismo para la suite de prueba 2).

    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
    
    @RunWith(value = Suite.class)
    @SuiteClasses(value = { TestCase1.class })
    public class TestSuite1 {}

    Y aquí está mi clase de prueba. Crear testcase1 y testcase2.

    import static org.junit.Assert.assertEquals;
    
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    public class TestCase1 {
    
        @BeforeClass 
        public static void setUpClass() {      
            System.out.println("TestCase1 setup");
        }
    
        @Test
        public void test1() {
            assertEquals(2 , 2);
        }
    }    

    usted debe tener 5 clases
    completesuite
    suite1
    suite2
    prueba1
    test2

    y asegúrese de que tiene Junit en la construcción de la ruta. Esto debe ejecutar!

    Aquí está la salida

    Master setup
    TestCase1 setup
    Master tearDown
    • Qué! Realmente funciona! Caray, me pregunto ¿cómo es que yo no podía conseguir que el trabajo de ayer (probablemente sólo una metedura de pata por mi parte entonces).
    • Impresionante la solución! Incluso en mi escenario donde un custom test (prueba personalizada escáner crea la lista de pruebas.

Dejar respuesta

Please enter your comment!
Please enter your name here