2017-10-18 4 views
0

Dans mon projet, je dispose d'un fichier YAML comme ceci: service: url: http://10.10.100.09/service/pingComment lire la valeur de la propriété du fichier yaml dans l'application springboot?

Actuellement, j'ai installé mes tests comme celui-ci:

@RunWith(SpringRunner.class) 
@SpringBootTest(properties = 
{"service.url=http://10.10.100.09/service/ping"},webEnvironment = 
SpringBootTest.WebEnvironment.RANDOM_PORT) 
public abstract class BaseIntegration { 

@Value("${local.server.port}") 
private int serverPort; 

@Before 
public void setup() { 
    RestAssured.port = serverPort; 
} 

}

Mon test étendons la La classe BaseIntegration et le code de test résident ici. Question: Comment puis-je lire la propriété url directement à partir du fichier de configuration et ne pas le coder en dur dans les tests?

J'ai essayé d'utiliser l'annotation @SpringBootApplication mais son erreur de lancement lorsque je démarre mes tests.

+0

voulez-vous lire la propriété de défaut '/ src/main/resources/fichier application.yml' ou de certains'/src/test/resources/application-test.yml'? – varren

Répondre

0

pouvez-vous essayer

@SpringBootTest(properties = {"${service.url}"},webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

ou

@SpringBootTest(properties = {"service.url"},webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

+0

J'ai essayé la première option et son ne fonctionne pas. L'url du service n'est pas lue depuis le fichier yaml et mes tests échouent – worrynerd

+0

peut-être que vous créez application-test.yml et y mettez la variable – gokhanbirincii

+0

J'ai essayé cela. Maintenant, je reçois une erreur différente du fichier test-application.yaml qui ne se lit pas et qui ne se trouve pas dans le classpath. J'utilise gradle. Ai-je besoin de faire quelque chose là-bas? – worrynerd