Orden de ejecucion

Para establecer el orden de ejecución

Ejecución simultanea

Todos se ejecutan al iniciar al contenedor. Se utiliza la anotación @DependsOn("TestEnvironment")

Ejecución Dependiente

En algunas ocasiones debemos indicar el orden de ejecución de los Test.

Las reglas serian:

  • La clase principal debe implementar @DependsOn("TestEnvironment")

  • Las clases secundarias implementan @DependsOn("nombre-clase-que-debe-ejecutarse-primero")

Proyecto Web

En el proyecto Web siempre usamos el orden de ejecuciòn dependiente, ya que necesitamos invocar el método terminate() del unitTest en el ultimo test que realicemos.

En este ejemplo BodegaTest.java se ejecutara primero y ColorTest.java sera el ultimo en ejecutarse e invocara el terminate()

BodegaTest.java

  • Definimos que es dependiente de TestEnvironment y la ruta para los reportes.

@Startup
@Singleton
@DependsOn("TestEnvironment")
@Test
@Report(path = "/home/avbravo/Descargas/")
public class BodegaTest {

    @Inject
    UnitTest unitTest;
    @Inject
    BodegaRepository bodegaRepository;

    @PostConstruct
    void init() {
        unitTest.start(BodegaTest.class);

      ....

    }

    @PreDestroy
    public void destroy() {
        unitTest.end(BodegaTest.class);
    }

    ...
    }

ColorTest.java

  • Depende de BodegaTest

  • Como es el ultimo test en ejecutarse invoca unitTest.terminate() desde el método init().

@Startup
@Singleton
@DependsOn("BodegaTest")
@Test
public class ColorTest {

    @Inject
    UnitTest unitTest;
    @Inject
    UnitView unitView;
    @Inject
    ColorRepository colorRepository;

    @PostConstruct
    void init() {
        unitTest.start(ColorTest.class);
        unitView.start(ColorTest.class);
    ......
  unitTest.terminate();
    }

    @PreDestroy
    public void destroy() {
        unitTest.end(ColorTest.class);
    }
    ......
    }

Last updated