Esta es la contestación más completa que encomtrarás brindar, pero obsérvala pausadamente y analiza si se adapta a tu trabajo.
Solución:
Prueba esto:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestApplication.class,
initializers = ConfigFileApplicationContextInitializer.class)
public class SomeTestClass
...
EDITAR:
Para Spring Boot versión 1.5+, SpringApplicationConfiguration
fue eliminado a favor de SpringBootTest
o uso directo de SpringBootContextLoader
.
Todavía puedes usar initializers
parámetro con ContextConfiguration
anotación.
El truco para cargar ningún archivo yml personalizado en SpringBoot 2.0 sin usar @SpringBootTest
- crear algún archivo yml en testresources
- Usar
ConfigFileApplicationContextInitializer
yspring.config.location
propiedad
Código de ejemplo:
@RunWith(SpringRunner.class)
@ContextConfiguration(
classes = MyConfiguration.class, AnotherDependancy.class ,
initializers = ConfigFileApplicationContextInitializer.class )
@TestPropertySource(properties = "spring.config.location=classpath:myApp-test.yml" )
public class ConfigProviderTest
@Autowired
private MyConfiguration myConfiguration; //this will be filled with myApp-test.yml
@Value("$my.config-yml-string")
private String someSrting; //will get value from the yml file.
Para JUnit 5 use el @ExtendWith(SpringExtension.class)
anotación en lugar de @RunWith(SpringRunner.class)
Aquí hay otra manera: [Spring Boot v1.4.x]
@Configuration
@ConfigurationProperties(prefix = "own")
public class OwnSettings
private String name;
Getter & setters...
import org.springframework.boot.test.context.SpringBootTestContextBootstrapper;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@BootstrapWith(SpringBootTestContextBootstrapper.class)
public class OwnSettingsTest
@Autowired
private OwnSettings bean;
@Test
public void test()
bean.getName();
Esto funciona SOLO si también existe el archivo ‘application.properties’.
por ejemplo, proyecto maven:
src/main/resources/application.properties [ The file can be empty but it’s mandatory! ]
src/main/resources/application.yml [here’s your real config file]
Te mostramos las comentarios y valoraciones de los lectores
Si crees que ha sido de ayuda nuestro post, sería de mucha ayuda si lo compartes con más entusiastas de la programación así nos ayudas a difundir esta información.