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:
- http://www.baeldung.com/cucumber-spring-integration (utilizando @ContextConfiguration loader con SpringApplicationContextLoader.class que no está presente en la última versión de Spring Boot, 1.5.2.RELEASE en el momento de la redacción).
- establecer programáticamente el perfil de Spring en Cucumber (jugando con la propiedad del sistema)