Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

209
Views
Cómo activar el perfil de arranque de primavera con pepino

Estoy buscando una buena manera de activar un perfil de resorte para mis pruebas de pepino. Las pruebas de pepino necesitan usar una versión stub 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:

  • Ejecutar pruebas de pepino con mvn: $ mvn test
  • Ejecutar 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 he encontrado pero no resuelven mi problema:

  • http://www.baeldung.com/cucumber-spring-integration (usando el cargador @ContextConfiguration con SpringApplicationContextLoader.class que no está presente en la última versión de Spring Boot, 1.5.2.RELEASE en el momento de escribir este artículo).
  • establecer programáticamente el perfil de Spring en Cucumber (jugar con la propiedad del sistema)
about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Actualización de octubre de 2021:

La siguiente respuesta está desactualizada y ya no es la respuesta aceptada. ¡Marque la respuesta aceptada real en su lugar!


Respuesta original:

Resolví 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 comando con maven o en el servidor de compilación, mi prueba está usando FooServiceSTub y mis pruebas pasan.

about 4 years ago · Santiago Trujillo Report

0

En la versión de pepino más reciente ( 6.11.0 ), necesita una clase con configuración de resorte y debe anotar esa, no la definición de pasos

 @ActiveProfiles("test") @CucumberContextConfiguration @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class CucumberSpringConfiguration { }
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!