0
votes

Comment garder les tests d'intégration maven isolés les uns des autres?

J'ai plusieurs tests d'intégration Maven qui mettent à jour l'état de la base de données, ce qui pourrait créer des conflits entre ces tests. Je me demandais s'il y a un moyen d'isoler ces tests d'intégration en exploitant des phases mavennes ou une autre approche? Idéalement, j'aimerais avoir un moyen d'exécuter des migrations de base de données avant chaque classe de test d'intégration. J'utilise Flagway comme outil de migration pour ma base de données PostgreSQL et j'utilise Junit 4.12. Les migrations que je travaille sont essentiellement créant et peupler des tables avec des données pour les tests.


0 commentaires

3 Réponses :


0
votes

Responsabilités de Maven consiste à exécuter des tests un par un sur essais d'intégration phase et vérifiez les résultats sur vérifier . Il est également capable de préparer / d'éteindre l'environnement. Vérifiez Plugin FréailSafe .

Et tout isolement entre les tests incombe à un cadre de test que vous utilisez (junit, test, concombre, etc.).


3 commentaires

Est-il possible avec ces cadres de test pour appliquer les migrations de bases de données exécutant avant chaque classe d'essai d'intégration pour ramener la base de données à un état connu?


Oui, chacun de ces cadres a @Before . Mais il n'est pas clair de la question que vous utilisez exactement les cadres de test que vous utilisez et quel type de migration que vous souhaitez exécuter, tout ce que je peux dire que ce n'est pas une responsabilité de Maven. Je vous suggérerais de poser une autre question plus détaillée avec votre situation.


Désolé, j'ai ajouté plus de détails à la question. J'utilise Flagway et Junit 4.12. Les migrations que je cours sont essentiellement créant et peupler des tables avec des données pour les tests.



1
votes

Junit a @Before et @After annotations pour la laisser invoquer des méthodes avant et après chaque classe de test.

Ces méthodes sont alors responsables de la mise en place de la base de données dans un état connu avant chaque test.


4 commentaires

Quelle est la meilleure façon d'assurer des scripts de migration de base de données en utilisant le @Before et @After annotations


Les scripts de migration de la base de données devraient à mon avis avant que des tests d'intégration soient démarrés (vous utilisez un cadre, non?) Et les méthodes Java ne doivent être responsables que de réinitialiser les tables à un état connu.


Je vois, oui j'utilise Flagway pour exécuter les migrations avant que les tests d'intégration ne soient démarrés avec Maven. Recherchez-vous également d'utiliser Flagway Tools pour réinitialiser les tables des méthodes Java?


Je ne suis pas assez familier avec la voie aérienne pour répondre à cela. Vous avez probablement besoin de quelque chose qui peut supprimer toutes les lignes et insérer des données de test connues.



0
votes

J'ai pu résoudre ce problème en utilisant Flyway-Core . Fondamentalement, j'ai fini par faire ce qui suit à l'intérieur de chacune des classes de test: xxx


0 commentaires