1

Nous utilisons Maven et Spring et exécutons actuellement nos tests en utilisant les propriétés du système et test avec cette ligne.Quel est le meilleur moyen d'obtenir un mot de passe de base de données pour les tests d'intégration en utilisant Maven?

mvn -Ddbuser=username -Ddbpassword=password test 

Dans le passé, je l'avais utilisé des variables d'environnement, mais je lis que le soutien allait loin dans maven donc pensé que ce peut être une mauvaise pratique.

+4

La meilleure pratique consiste pour vos tests unitaires ne pas frapper les bases de données réelles. Simulez ou fakez toute l'activité de la base de données. Les tests unitaires doivent être exécutés rapidement. Les tests d'intégration peuvent atteindre les bases de données, mais pas les tests unitaires. – Asaph

+0

@Asaph: Votre commentaire est absolument vrai pour les tests unitaires. Cependant la question est valable pour les tests d'intégration. Je vais éditer le titre et les tags en conséquence. – Johnsyweb

Répondre

3

Vous pouvez stocker le mot de passe en tant que propriété dans le fichier settings.xml. Maintenant, si le stocker dans un texte clair vous bugs autant que moi, il y a l'option --encrypt-password pour le maven que vous pouvez ensuite stocker le mot de passe dans le settings.xml crypté dans un profil, un serveur, ou un autre section à utiliser dans vos tests d'intégration. Voici le lien vers la documentation sur la façon de configurer ceci:

http://maven.apache.org/guides/mini/guide-encryption.html