maven - test - Configuración de SpringApplication no encontrada: ¿Contenido erróneo de prueba de inicio-arranque-arranque?
spring-boot-starter-test example (3)
Dado que el error se debe a la actualización de Spring Boot de 1.4 a 1.5, es importante tener en cuenta (desde abajo) que varias clases nuevas que se introdujeron en 1.4 dejaron de lado algunas de las clases existentes que conducen a la eliminación definitiva en 1.5. Los detalles de los mismos se pueden encontrar en: Spring boot release notes
Citado del sitio web (editado):
Además, Spring Boot 1.4 (y superior) intenta racionalizar y simplificar las diversas formas en que se puede ejecutar una prueba de Spring Boot. Debe migrar lo siguiente para usar la nueva anotación @SpringBootTest:
De
@SpringApplicationConfiguration(classes=MyConfig.class)
a@SpringBootTest(classes=MyConfig.class)
De
@ContextConfiguration(classes=MyConfig.class, loader=SpringApplicationContextLoader.class)
a@SpringBootTest(classes=MyConfig.class)
De
@IntegrationTest
a@SpringBootTest(webEnvironment=WebEnvironment.NONE)
Desde
@IntegrationTest
con@WebAppConfiguration
hasta@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)
De
@WebIntegrationTest
a@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)
Consejo Mientras migras las pruebas, es posible que también quieras reemplazar cualquier
@RunWith(SpringJUnit4ClassRunner.class)
con@RunWith(SpringRunner.class)
más legible de Spring 4.3.
Obteniendo un error de compilación en Maven:
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/prototypes/demo-sse-spring-boot-master/src/test/java/com/cedric/demo/sse/SseDemoApplicationTests.java:[6,37] package org.springframework.boot.test does not exist
[ERROR] /C:/TITAN/demo-sse-spring-boot-master/src/test/java/com/cedric/demo/sse/SseDemoApplicationTests.java:[10,2] cannot find symbol
symbol: class SpringApplicationConfiguration
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
Maven repo parece tener el tarro presente:
Sin embargo, siempre que jar no tiene ninguna clase compilada en su interior. solo direccion META-INF:
¿Eso es por diseño? ¿Dónde consigo el frasco que contiene la clase SpringApplicationConfiguration para hacer feliz a Maven?
Aquí están las partes relevantes de mi pom.xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>jquery</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
En su lanzamiento, la anotación @SpringApplicationConfiguration
ya no existe. Las nuevas anotaciones son:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = YourApplicationMainClass.class)
@WebAppConfiguration
spring-boot-starter-test
, como todos los otros arrancadores de Spring Boot, en realidad es solo un pom que atrae a una serie de otras dependencias de forma transitiva. Solo tiene un tarro para mantener contentos algunos sistemas de compilación a los que no les gustan las dependencias pom-only.
Parece que ha actualizado una aplicación de Spring Boot 1.4 a Spring Boot 1.5. Spring Boot 1.5 elimina una cantidad de clases que quedaron obsoletas en 1.4, incluyendo org.springframework.boot.test.SpringApplicationConfiguration
.
Recomendaría volver a Spring Boot 1.4.4.RELEASE y corregir todas las advertencias de desaprobación. Entonces deberías poder actualizar a Spring Boot 1.5.1.RELEASE sin dificultad.