Lancer Docker pour faire des tests d'intégration (Java) ?

Lancer Docker pour faire des tests d'intégration (Java) ?

Lancer Docker pour faire des tests d’intégration (Java) ?

Je suis en train de développer pour le fun quelques Lambdas qui doivent s’exécuter dans une stack AWS en utilisant entre autres DynamoDB.
Je voulais tester (test d’intégration donc) de concert plusieurs Lambdas : une qui persiste un binaire et l’autre qui le lit.

Comment faire ?

Lancer DynamoDB en local…
C’est possible : les librairies sont disponibles et le lancement en local avec une simple ligne de commande est facile et documenté.
Mais je voulais toujours retrouver un contexte propre pour des tests reproductibles.

La solution

Autre solution Docker…
Mais comment lancer facilement un container Docker lors de tests ?
Et bien …. J’avais vu la conférence JUnit + Docker par Xavier Detant et Vincent Demeester

Et hop une petite annotation
@Docker( image = "cnadiminti/dynamodb-local", ports = @Port(exposed = 8000, inner = 8000), newForEachCase = false ) devant ma classe de test et le tour est joué. Simple propre efficace !

Allez voir la documentation pour vous rendre compte à quel point la mise en oeuvre est simple : https://faustxvi.github.io/junit5-docker/
Il vous faudra JUnit 5.x Bons tests les amis !

Informations