limpieza de base de datos después de las pruebas de selenio
-
10-10-2019 - |
Pregunta
Después de corro un montón de pruebas de selenio (junit4) utilizando Maven, me gustaría hacer una base de datos de limpieza (cosas que quitan insertan etc). Es un proyecto mayor que se ejecuta en la tapicería / primavera / Hibernate y una base de datos existente. Me gustaría hacer la limpieza en un método anotado @After
-., Pero la inyección de la DAO de / Agentes / SessionFactory qué no funciona
La prueba es el siguiente: corro (mvn jetty:run-war
) la aplicación en una consola, y empezar las pruebas en otra consola (mvn test
) - se accede a la aplicación en el servidor local:. 8080
Solución
Varios enfoques posibles:
- DBUnit , que está diseñado para devolver una base de datos a un estado de conocimientos entre las pruebas.
- Wrap cada prueba en una transacción de base de datos con un bloque
try{} finally{}
donde los finalmente deshace la transacción. - Usar una base de datos para probar estrictamente y no se preocupe de ello. Haga que sus pruebas de crear una identificación única / valores con nombre cada vez por lo que no tiene conflictos, pero por lo demás no tome ninguna acción.
Otros consejos
Yo prefiero utilizar
@Transactional
anotation encima de declaración de método. Se ejecuta rollback después de cada prueba. Funciona bien para mí.
Por ejemplo:
@Test
@Transactional
public void simpleTest(){
// your logic here
}