Nous avons plusieurs classes de test dans notre application Spring Boot. Certaines de ces classes contiennent des tests d'intégration, d'autres des tests unitaires. Cela signifie que si j'autorise (par exemple avec maven) l'exécution de tous les tests, tous les tests de toutes les classes seront exécutés.
Ce que j'aimerais obtenir, c'est que les tests d'intégration ne soient exécutés que si un profil Spring spécifique est défini, par exemple via application.yml. J'aimerais par exemple annoter la classe de test entière pour définir que les tests de cette classe ne sont exécutés que si le profil Spring spécifié est défini. S'il n'est pas défini, ces tests sont ignorés.
- Le sujet Comment puis-je utiliser @IfProfileValue pour tester si un profil est actif ? va exactement dans ce sens.
@IfProfileValue
À première vue, il semble que ce soit exactement ce dont j'ai besoin. Mais comme on me l'a fait remarquer, ce n'est pas le cas. Je pourrais l'utiliser, si je définissais une propriété système spécifique. Mais j'ai besoin d'utiliser un vrai profil de ressort (et non la propriété systèmespring.profiles.active
- cela ignorerait un profil défini viaapplication.yml
) -
@Profile
semble également être ce dont j'ai besoin mais comme le sujet Utiliser @Profile pour décider d'exécuter la classe de test montre, nous ne devrions pas l'utiliser.
Que peut-on faire pour y parvenir ? Notez qu'il y a beaucoup de questions sur les tests et les profils spring sur stack overflow. Mais la plupart d'entre elles indiquent comment définir des configurations dans les tests spécifiques aux profils spring. Ce n'est pas ce que je recherche. Je voudrais exécuter ou ignorer les tests.