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
Was this helpful?