J'essaye de créer un plugin Maven pour exécuter des tests de manière isolée dans une architecture orientée service. Étant donné une mise en page de projet comme:Partage de propriétés générées dynamiquement entre des modules frères
Service
|- webapp
|- int-test
Je veux:
- générer des valeurs de propriété dynamiquement en appelant aux « fournisseurs de propriété » configurables. Un tel fournisseur de propriété peut appeler un service Web pour obtenir un ID de compte inutilisé sous lequel les données de test seront transférées.
- Substituez ces valeurs dans les fichiers de propriétés des modules webapp et int-test.
- Démarrez la webapp
- Exécutez les tests.
Je suppose que la meilleure façon de le faire serait d'ajouter la configuration du plug-in pour le POM parent, et un utilisateur peut simplement vérifier le projet, cd dans le répertoire du parent pom et exécuter l'objectif du plug-in pour exécuter les tests sur un service fonctionnant localement.
Je ne sais pas exactement comment on ferait l'étape 2 ci-dessus. Idéalement, je préfère ne pas avoir le plugin changer les fichiers de propriétés dans int-test/src/test/resources
ou webapp/src/main/config
parce que les gens pourraient vérifier ces changements par erreur. Je préfère que les remplacements n'apparaissent que dans les répertoires target/
respectifs.
J'ai vu que le filtrage peut être utilisé pour résoudre des problèmes similaires, mais je n'ai vu aucune solution impliquant le partage de propriétés générées dynamiquement entre les modules.
Toutes les suggestions seraient grandement appréciées.
Que diriez-vous, écrivez votre fichier généré dynamiquement à un fichier de propriétés. Lisez ensuite les propriétés en utilisant le plugin maven properties [1]. Ensuite, exécutez le filtrage basé sur ces propriétés [2]. (AFAIU, nous pouvons donner des propriétés maven comme variables de filtrage) [1] http://haroon.sis.utoronto.ca/zarar/properties-maven-plugin/index.html [2] http: // maven. apache.org/plugins/maven-resources-plugin/examples/filter.html –
Eh bien, le problème est que les propriétés doivent être lues au niveau du POM parent, puis filtrées dans les fichiers de propriétés du projet enfant. –