Estoy tratando de acelerar las pruebas de integración en nuestro entorno. Todas nuestras clases están auto conectadas. En nuestro archivo applicationContext.xml hemos definido los siguientes:La prueba de integración de muelles es lenta con autoenvío
<context:annotation-config/>
<context:component-scan base-package="com.mycompany.framework"/>
<context:component-scan base-package="com.mycompany.service"/>
...additional directories
me he dado cuenta de que la primavera está escaneando todos los directorios indicados anteriormente y luego itera sobre cada grano y almacena en caché las propiedades de cada uno. (Fui a través de los mensajes de depuración de la primavera)
Como resultado, la siguiente prueba tarda unos 14 segundos para correr:
public class MyTest extends BaseSpringTest {
@Test
def void myTest(){
println "test"
}
}
¿Hay alguna manera de la carga perezosa la configuración? Intenté agregar default-lazy-init="true"
pero eso no funcionó.
Idealmente, solo se crean instancias de los beans requeridos para la prueba.
gracias de antemano.
Actualización: Debería haber dicho esto antes, no quiero tener un archivo de contexto para cada prueba. Tampoco creo que un archivo de contexto solo para las pruebas funcione. (Este archivo de contexto de prueba terminaría incluyendo todo)
Así que la idea es tener un contexto de aplicación separada (s) para la prueba (s) ... cada vez que tengo una clase test1 donde tengo que usar otro bean, lo agrego al contexto test1 y no uso escaneo de componentes. O utilice el escaneo de componentes e intente crear pruebas de acuerdo con los paquetes, lo que parece ser una tontería. – lisak
Pensé en esto, pero estaba tratando de evitar la definición de un archivo de contexto personalizado por archivo de prueba. Estamos utilizando estas pruebas para las pruebas de integración parcial (necesitan llegar a la base de datos). – Tihom