2010-11-08 32 views
5

Nous avons écrit tous nos tests unitaires afin qu'ils créent et remplissent des tables dans HSQL. Je veux que les développeurs qui l'utilisent puissent écrire des requêtes sur cette base de données HSQL (1) en écrivant des requêtes pour mieux comprendre le modèle de données et ceux qui ne sont pas familiers avec SQL peuvent jouer avec les données avant d'écrire les 2) puisqu'ils n'ont pas accès au DB de test/raisons de sécurité). Y at-il un moyen de persistent les résultats des données de test afin qu'il puisse être examiné et analysé avec un client SQL?Existe-t-il un moyen de conserver les données HSQLDB?

En ce moment je suis en train de le truquer en changeant la source de données à un DB différent (comme DB2/mysql, puis en me connectant à cette DB sur ma machine pour pouvoir jouer avec des données persistantes) Si HSQL prend en charge la persistance de ce que d'expliquer comment faire cela à chaque nouveau développeur. Pour être clair, j'ai besoin d'un client SQL pour interagir avec les données persistantes, donc le débogage et la vérification de la mémoire ne seront pas propres. Cela a plus à voir avec le développement initial et non le débogage/maintenance/test.

Répondre

5

Si vous utilisez une instance de serveur HSQLDB pour vos tests, les données survivront à l'exécution du test.

Si le serveur utilise une URL jdbc: hsqldb: mem: aname (all-in-memory) pour sa base de données, les données seront disponibles pendant l'exécution du serveur. Alternativement, le serveur peut utiliser un fichier jdbc: hsqldb: file: filepath et les données sont conservées dans les fichiers.

Les derniers documents HSQLDB expliquent les différentes options. La plupart des observations s'appliquent également aux versions plus anciennes (1.8.x). Cependant, la dernière version 2.0.1 prend en charge le démarrage d'un serveur et la création dynamique de bases de données lors de la première connexion, ce qui peut simplifier considérablement les tests.

http://hsqldb.org/doc/2.0/guide/deployment-chapt.html#N13C3D

+0

un client peut se connecter sql à tout ce qui hsqldb persiste? – Zombies

+0

Lorsque vous exécutez HSQLDB en tant que serveur, il fonctionne de la même manière que DB2. Vous utilisez le serveur comme source de données et pouvez également utiliser un client SQL tel que HSQLDB DatabaseManager ou Squirrel pour vous connecter au serveur et lire les données. – fredt