tag lib form spring testing spring-boot cucumber feature-file

spring - lib - Cómo activar el perfil de arranque de primavera con pepino



tag lib jstl (1)

He resuelto este problema con una anotación que puse en mi clase FeatureStep.

La anotación:

Tenga en cuenta los @ActiveProfiles en él.

import java.lang.annotation.*; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @ContextConfiguration @ActiveProfiles("test") @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = FeatureTestConfiguration.class) public @interface FeatureFileSteps { }

La clase de configuración es muy básica:

@Configuration @Import(FooApplication.class) public class FeatureTestConfiguration { }

Usando la anotación:

Agregar la anotación a los pasos de la función:

@FeatureFileSteps public class FooFeatureSteps { @Given(...) @When(...) @Then(...) }

Ahora cuando ejecuto las pruebas de características de Cucumber, ya sea desde mi IDE, desde la línea de comandos con maven o en el servidor de compilación, mi prueba utiliza FooServiceSTub y mis pruebas pasan.

Estoy buscando una buena manera de activar un perfil de primavera para mis pruebas de pepino. Las pruebas de pepino deben utilizar una versión trozada de un servicio que está marcado con:

@Profile("test") @Component class FooServiceStub extends FooService {...}

El servicio regular se ve así:

@Profile("prod") @Component class FooService {...}

Mis requisitos:

  • Ejecute pruebas de pepino con mvn: prueba $ mvn
  • Ejecuta pruebas de pepino en IDE
  • Ejecute pruebas de pepino en el servidor de compilación
  • No es necesario utilizar el argumento -Dspring.profiles.active = ...

Fuentes que encontré pero que no resuelven mi problema: