Quelle est la meilleure façon de lancer HSQLDB pour les tests unitaires, en travaillant avec spring, maven et hibernate?
Dans mon projet, je peux tester avec succès de la base de données de code. Je suis en utilisant Spring, Hibernate, HSQLDB, JUnit et Maven.
Le hic, c'est que actuellement, j'ai le lancement de HSQLDB manuellement avant de lancer les tests. Quel est le meilleur moyen d'automatiser le lancement de HSQLDB avec les technologies utilisées?
source d'informationauteur tom eustace
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que avec
hsql
vous faites référence à HSQLDB.Configurer votre base de données d'url pour les pilotes JDBC (pour hibernate, etc) de la mémoire intégrée en fonction de la version de HSQLDB:
Puis un inprocess version de HSQLDB démarre automatiquement que les magasins de trucs à la mémoire. Pas besoin de démarrer l'un des serveurs externes.
J'utilise moi-même dans la mémoire de base de données hsql pour tester mon DAO. En conséquence, je n'ai pas besoin d'être connecté à n'importe quel externes serveur de base de données ou de toute connexion réseau.
Utiliser les paramètres suivants:
jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver
jdbc.url=jdbc:hsqldb:mem:DatabaseName
Comprennent également la
Cela vous permettra d'utiliser la base de données en mémoire et va créer automatiquement les tables de base de données de mise en veille prolongée objets avant l'exécution des tests.
Espère que cela va vous aider.
Remarque:
La "default_schema" propriété est utilisée lors de votre DBA crée plusieurs schémas dans une base de données unique. Je l'ai vu avec postgres où tout le monde utilise une base de données d'URL mais de moins qu'il y a des schémas distincts pour chaque application.
En utilisant le schéma par défaut de la propriété il vous permet de garder le schéma noms de vos entités. Ceci est particulièrement utile si vous êtes en cours d'exécution des tests par rapport à HSqlDB qui ne prend pas en charge les schémas et vous déployer à l'encontre d'un DB qui est à l'aide de schémas. Ayant une valeur null signifie simplement qu'il sera par défaut à la base de données de schéma par défaut.
Vous pouvez également exécuter une tâche Ant
<startdb>
:https://forums.hibernate.org/viewtopic.php?f=6&t=984383&start=0
Utiliser en cours de processus ou dans la mémoire et il va commencer à partir de JDBC pour établir une connexion.
Avec JUnit, vous pouvez créer une méthode qui est exécutée avant vos tests à l'aide de l'annotation suivante: @Avant
Le lien vers la JUnit docs, c'est ici: JUnit FAQ - appareils de Test