Charger différents application.yml dans SpringBoot Test
Je suis l'aide d'un ressort de démarrage de l'app qui gère mon dossier src/main/resources/config/application.yml.
Quand je lance mon cas de test par :
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
public class MyIntTest{
}
Les codes de test encore exécuter mon application.fichier yml à la charge de propriétés.
Je me demande si il est possible d'exécuter un autre *.fichier yml lors de l'exécution du cas de test.
source d'informationauteur Exia
Vous devez vous connecter pour publier un commentaire.
Une option est de travailler avec des profils. Créez un fichier appelé application-test.ymldéplacer toutes les propriétés dont vous avez besoin pour les tests de ce fichier, puis ajouter le
@ActiveProfiles
annotation à votre classe de test:Être conscient, il sera en outre la charge de l'application de test.yml, de sorte que toutes les propriétés qui sont en demande.yml vont encore être appliquées. Si vous ne voulez pas que, soit d'utiliser un profil de ceux-ci, ou de les remplacer dans votre application de test.yml.
Vous pouvez utiliser
@TestPropertySource
pour charger les différentes propriétés/fichier yamlOU si vous voulez remplacer seulement des propriétés spécifiques/yaml vous pouvez utiliser
Vous pouvez configurer votre test de propriétés dans
src/test/resources/config/application.yml
fichier. Printemps de Démarrage des cas de test prendra propriétés deapplication.yml
fichier dans test répertoire.Voir ceci: Printemps @PropertySource à l'aide de YAML
Je pense que la 3ème réponse a ce que vous cherchez, je.e ont un POJO à la carte de votre yaml valeurs dans:
Ensuite annoter votre classe de test avec ceci:
Nous pouvons utiliser @SpringBootTest annotation qui charge le fichier yml de la src\main\java\com...c'est pourquoi, lorsque nous exécutons le test de l'unité, toutes les propriétés sont déjà là dans les propriétés de configuration de la classe.
Nous pouvons utiliser @Valeur de l'annotation si vous avez quelques configs ou autres sages, nous pouvons utiliser une config propriétés de la classe. Pour l'e.g
Printemps-boot cadre nous permet de vous fournir les fichiers YAML comme un remplacement pour le .les propriétés de fichier et c'est pratique.Les clés dans les fichiers de propriétés peuvent être fournis en format YAML dans l'application.fichier yml dans le dossier de ressources et de printemps-boot automatiquement.Gardez à l'esprit que le format yaml est de garder les espaces de corriger la valeur de lire correctement.
Vous pouvez utiliser le @Valeur("${propriété}") pour injecter les valeurs à partir de fichiers YAML.
Également Au Printemps.active.les profils peuvent être donnés, afin de différencier les différents YAML pour environnements différents pour la pratique de déploiement.
Des fins de test, le test de fichier yaml peut être un nom comme l'application de test.yml et placé dans le dossier de ressources de l'essai de répertoire.
Voici le lien pour le Printemps de la documentation concernant l'utilisation de YAML au lieu de
.properties
fichier(s): https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.htmlDe départ avec le Printemps, 4.1, On peut définir directement la propriété dans l'application.yml à l'aide de la @TestPropertySource annotation.
Il suffit de convertir votre fichier yaml paramètres dans la propriété complète de la structure.
Par exemple:
Si le contenu de l'application.yml est comme ci-dessous
Puis de la valeur à l'intérieur de l' @TestPropertySource sera,