IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Test Unitaire avec hsqldb


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut Test Unitaire avec hsqldb
    Bonjour,

    J'ai écrit un programme pour tester Spring-data-jpa dans lequel j'ai un test unitaire permettant de valider la persistance de mes objets. Cela fonctionne.
    J'utilise une base hsqldb pour effectuer mes tests. Pour cela j'ai rajouté dans le pom de mon projet la dépendance suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <dependency>
    	<groupId>org.hsqldb</groupId>
    	<artifactId>hsqldb</artifactId>
    	<version>1.8.0.10</version>
    	<scope>test</scope>
    </dependency>
    J'aimerai savoir si cette base travaille en mémoire ou si elle écrit les data dans un fichier. Si c'est le cas où sont stockés ces fichiers vu que je "l'installe" avec Maven. De plus existe t-il une application pour requêter la base avec des commandes SQL ?

    Merci de votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut
    En cherchant un peu, j'ai vu que dans mon fichier persistence.xml je peux modifier la propriété hibernate.connection.url :jdbc:hsqldb:file:d:/testdb

    Du coup la base est présente dans d: sous le nom testdb. Maintenant je n'arrive pas à rendre persistent mes données entre 2 lancements de mon application.

  3. #3
    Membre émérite

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Par défaut
    Citation Envoyé par tatemilio2 Voir le message
    Bonjour,

    J'ai écrit un programme pour tester Spring-data-jpa dans lequel j'ai un test unitaire permettant de valider la persistance de mes objets. Cela fonctionne.
    J'utilise une base hsqldb pour effectuer mes tests. Pour cela j'ai rajouté dans le pom de mon projet la dépendance suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>1.8.0.10</version>
        <scope>test</scope>
    </dependency>
    J'aimerai savoir si cette base travaille en mémoire ou si elle écrit les data dans un fichier. Si c'est le cas où sont stockés ces fichiers vu que je "l'installe" avec Maven. De plus existe t-il une application pour requêter la base avec des commandes SQL ?

    Merci de votre aide.
    Ce n'est pas un problème lié à Maven ! Il te faut donc paramétrer ton profil de test pour Spring...

    Je n'ai pas encore eu l'occasion d'utiliser ce package mais j'imagine qu'il faut paramétrer ton datasource en autre...

    Avec
    - ton url du type: "jdbc:hsqldb:mem:unit-testing-jpa" -> test en mémoire !
    - ton driver du type : "org.hsqldb.jdbcDriver"

    Citation Envoyé par tatemilio2 Voir le message
    En cherchant un peu, j'ai vu que dans mon fichier persistence.xml je peux modifier la propriété hibernate.connection.url :jdbc:hsqldb:file:d:/testdb

    Du coup la base est présente dans d: sous le nom testdb. Maintenant je n'arrive pas à rendre persistent mes données entre 2 lancements de mon application.
    Tu peux développer ? Ton appli ou tes tests unitaires ?? As-tu fait un profil de test pour Maven ???

    Bon tests...

  4. #4
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    ;-)
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut
    Citation Envoyé par Philippe Bastiani Voir le message
    Tu peux développer ? Ton appli ou tes tests unitaires ?? As-tu fait un profil de test pour Maven ???
    Bonjour non je n'ai pas fait de profil Maven.

    Ci-joint mon fichier persistence.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    	<persistence-unit name="jpa.sample" />
    	<persistence-unit name="jpa.sample.plain">		
    		<properties>
    			<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
    			<property name="hibernate.connection.url" value="jdbc:hsqldb:file:d:/testdb;shutdown=true" />
    			<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
    			<property name="hibernate.connection.username" value="sa" />
    			<property name="hibernate.connection.password" value="" />
    			<property name="hibernate.hbm2ddl.auto" value="update" /> 
    		</properties>
    	</persistence-unit>
    </persistence>
    Mon problème est que j'aimerai que les données que j'insère dans ma base puissent persister or actuellement à chaque fois que je lance mes tests j'ai l'impression que mes données sont supprimées à chaque lancement.

  6. #6
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Oui c'est normal. A chaque fois, tu repars de zéro. Tu peux faire soit du before soit du beforeclass, pour donner un équivalent junit.
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  7. #7
    Membre émérite

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Par défaut
    Citation Envoyé par tatemilio2 Voir le message
    Mon problème est que j'aimerai que les données que j'insère dans ma base puissent persister or actuellement à chaque fois que je lance mes tests j'ai l'impression que mes données sont supprimées à chaque lancement.
    Es-tu sûr que tes données aient été persistées ?

    Tu peux ajouter la propriété hibernate.show_sql pour voir ce qui ce passe... hbm2ddl.auto=update ne détruit pas ta base !

    Note: normalement pour des tests unitaires on repart d'une base vide (hibernate te permet d'importer des données de test... et, on positionne hibernate.hbm2ddl.auto=create-drop).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test unitaire avec DUnit
    Par stef_chand dans le forum Outils
    Réponses: 1
    Dernier message: 07/09/2007, 15h40
  2. Test unitaire avec C# et nunit
    Par jeromechezgdf dans le forum C#
    Réponses: 6
    Dernier message: 16/07/2007, 11h51
  3. Tests unitaires avec vbUnit sur des contrôles utilisateurs
    Par Patrick Mortas dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/09/2006, 18h06
  4. test unitaire avec python
    Par Abla23 dans le forum Zope
    Réponses: 4
    Dernier message: 30/06/2006, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo