unit test starter example maven testing spring-boot spring-boot-test

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.