Problème DBUnit test

104 vues
Accéder directement au premier message non lu

rlya...@sqli.com

non lue,
16 avr. 2013, 09:50:1016/04/2013
à scub-fo...@googlegroups.com
Bonjour,
je suis en train d'apprendre à utiliser dbunit j'ai utilisé l'exemple sur le site : http://www.scub-foundation.org/accueil/tutoriaux/tutorial-dbunit/
j'obtiens comme exception :

java.sql.SQLException: error in script file line: 2 invalid schema name: SYSTEM_SCHEMA in statement [CREATE MEMORY TABLE MANUFACTURER (ID INTEGER,NAME VARCHAR(25))]

Le fichier test.script je l'ai copié collé,
En vous remerciant pour votre aide

N'hésiter pas si vous avez besoin de plus de détails.

adrien.hautot

non lue,
16 avr. 2013, 12:30:0916/04/2013
à scub-fo...@googlegroups.com
Bonjour,
le problème vient que le script test.script n'est pas en accord avec la version de hsqldb utilisé dans le TP. Si le fichier test.script est seul dans le repertoire, celui-ci est considéré comme correspondant à une base en version 2.2.8. Hors ce n'est pas le cas. Il faut donc créer au même niveau (dans le dossier db) portant comme nom test.properties et avec le contenu suivant:

#HSQL Database Engine 1.8.0.10
#Tue Nov 20 10:32:11 CET 2012
hsqldb.script_format=0
runtime.gc_interval=0
sql.enforce_strict_size=false
hsqldb.cache_size_scale=8
readonly=false
hsqldb.nio_data_file=true
hsqldb.cache_scale=14
version=1.8.0
hsqldb.default_table_type=memory
hsqldb.cache_file_scale=1
hsqldb.log_size=200
modified=yes
hsqldb.cache_version=1.7.0
hsqldb.original_version=1.8.0
hsqldb.compatible_version=1.8.0

Il spécifie, entre autres, la version de la base pour le fichier test.script.
Vous pouvez relancer vos tests et ceux-ci devraient maintenant passer.
Vous pourrez remarquer que le fichier de script et le fichier properties que vous avez créé ont été modifié lors de l’exécution des tests et sont maintenant en accord avec la version de dbunit utilisée.

Cordialement,

-- 
Adrien HAUTOT
http://www.scub.net/
+33 (0)5 45 373 372

rlya...@sqli.com

non lue,
16 avr. 2013, 12:45:2316/04/2013
à scub-fo...@googlegroups.com
Je te remercie c'était ça, il ne reste plus qu'à mettre à jour le tutoriel,
par contre il faut penser à vérifier l'encodage, le dernier test ne passait pas (il vérifie que l'on retrouve le fichier xml d'import est identique à celui d'export). 

adrien.hautot

non lue,
17 avr. 2013, 04:50:5017/04/2013
à scub-fo...@googlegroups.com
Sur quel système d'exploitation faites vous fonctionner Scub Foundation?
Pouvez-vous faire une petite vérification de l'encodage de votre workspace et me fournir la valeur sélectionnée : Window -> préférence  Dans le menu gauche: Général > Workspace et regardez la valeur de l'encadré "Text file encoding".

Merci d'avance,

Cordialement,

Adrien

rlya...@sqli.com

non lue,
17 avr. 2013, 05:58:0117/04/2013
à scub-fo...@googlegroups.com
Windows malheureusement, j'ai regardé mais il y a bien écrit UTF-8, et quoique je fasse le dernier test ne passe toujours pas et à l'oeil nu les 2 fichiers sont pareils.
de plus j'ai utilisé le code de ce projet https://code.google.com/p/juniversalchardet/ pour détecter l'encodage il me dit qu'aucun encodage a été détecter et pour le fichier d'input il détecte utf-8.

adrien.hautot

non lue,
17 avr. 2013, 06:09:5717/04/2013
à scub-fo...@googlegroups.com
Je ferais un essai sous windows pour essaye de corriger le problème.
En attendant, pouvez vous faire un dernier test: dans le dossier dataSets, vous devez maintenant avoir deux fichiers (inputFlatXmlDataSet.xml et outputFlaxXmlDataSet.xml), faites un F5 sur le dossier si vous ne les voyez pas. En faisant un clic droit puis properties, vous aurez accès à leurs encodages respectifs dans  l'encadré "Text file encoding".
Pouvez-vous vérifier leurs valeurs?

D'avance merci,

Cordialement,

Adrien

redaLyazidi

non lue,
17 avr. 2013, 08:35:0817/04/2013
à scub-fo...@googlegroups.com,adrien...@gmail.com
D�sol� de r�pondre par mail mais le groupe de diffusion plante en ce moment :
Pour les deux dans la fen�tre properties il est �crit Default (determined from content-type : UTF-8), le fichier input a en plus �crit dessous
Byte order Mark UTf-8 (BOM), de plus au niveau de la taille il y a une diff�rence de 10 bytes, quand j'ouvre le fichier output avec notepad++ en bas il y a �crit ANSI comme encodage.
Je te remercie pour ton aide.

Le 17/04/2013 12:09, adrien.hautot a �crit�:
Je ferais un essai sous windows pour essaye de corriger le probl�me.
En attendant, pouvez vous faire un dernier test: dans le dossier dataSets, vous devez maintenant avoir deux fichiers (inputFlatXmlDataSet.xml et outputFlaxXmlDataSet.xml), faites un F5 sur le dossier si vous ne les voyez pas. En faisant un�clic�droit puis properties, vous aurez acc�s � leurs encodages respectifs dans��l'encadr� "Text file encoding".
Pouvez-vous v�rifier leurs valeurs?

D'avance merci,

Cordialement,

Adrien

Le mercredi 17 avril 2013 11:58:01 UTC+2, rlya...@sqli.com a �crit�:
Windows malheureusement, j'ai regard� mais il y a bien �crit UTF-8, et quoique je fasse le dernier test ne passe toujours pas et � l'oeil nu les 2 fichiers sont pareils.
de plus j'ai utilis� le code de ce projet�https://code.google.com/p/juniversalchardet/�pour d�tecter l'encodage il me dit qu'aucun encodage a �t� d�tecter et pour le fichier d'input il d�tecte utf-8.

Le mercredi 17 avril 2013 10:50:50 UTC+2, adrien.hautot a �crit�:
Sur quel syst�me d'exploitation faites vous fonctionner Scub Foundation?
Pouvez-vous faire une petite v�rification de l'encodage de votre workspace et me fournir la valeur s�lectionn�e : Window ->�pr�f�rence� Dans le menu gauche:�G�n�ral�> Workspace et regardez la valeur de l'encadr� "Text file encoding".

Merci d'avance,

Cordialement,

Adrien

Le mardi 16 avril 2013 18:45:23 UTC+2, rlya...@sqli.com a �crit�:
Je te remercie c'�tait �a, il ne reste plus qu'� mettre � jour le tutoriel,
par contre il faut penser � v�rifier l'encodage, le dernier test ne passait pas (il v�rifie que l'on retrouve le fichier xml d'import est identique � celui d'export).�

Le mardi 16 avril 2013 18:30:09 UTC+2, adrien.hautot a �crit�:
Bonjour,
le probl�me vient que le script test.script n'est pas en accord avec la version de hsqldb utilis� dans le TP. Si le fichier test.script est seul dans le repertoire, celui-ci est consid�r� comme correspondant � une base en version 2.2.8. Hors ce n'est pas le cas. Il faut donc cr�er au m�me niveau (dans le dossier db) portant comme nom test.properties et avec le contenu suivant:

#HSQL Database Engine 1.8.0.10
#Tue Nov 20 10:32:11 CET 2012
hsqldb.script_format=0
runtime.gc_interval=0
sql.enforce_strict_size=false
hsqldb.cache_size_scale=8
readonly=false
hsqldb.nio_data_file=true
hsqldb.cache_scale=14
version=1.8.0
hsqldb.default_table_type=memory
hsqldb.cache_file_scale=1
hsqldb.log_size=200
modified=yes
hsqldb.cache_version=1.7.0
hsqldb.original_version=1.8.0
hsqldb.compatible_version=1.8.0

Il sp�cifie, entre autres, la version de la base pour le fichier test.script.
Vous pouvez relancer vos tests et ceux-ci devraient maintenant passer.
Vous pourrez remarquer que le fichier de script et le fichier properties que vous avez cr�� ont �t� modifi� lors de�l�ex�cution�des tests et sont maintenant en accord avec la version de dbunit utilis�e.

Cordialement,

--�

Adrien HAUTOT
http://www.scub.net/
+33 (0)5 45 373 372


Le mardi 16 avril 2013 15:50:10 UTC+2, rlya...@sqli.com a �crit�:
Bonjour,
je suis en train d'apprendre � utiliser dbunit j'ai utilis� l'exemple sur le site : http://www.scub-foundation.org/accueil/tutoriaux/tutorial-dbunit/

j'obtiens comme exception :

java.sql.SQLException: error in script file line: 2 invalid schema name: SYSTEM_SCHEMA in statement [CREATE MEMORY TABLE MANUFACTURER (ID INTEGER,NAME VARCHAR(25))]

Le fichier test.script je l'ai copi� coll�,

En vous remerciant pour votre aide

N'h�siter pas si vous avez besoin de plus de d�tails.
--
Vous recevez ce message car vous �tes abonn� � un sujet dans le groupe Google Groupes "Scub Foundation".
Pour vous d�sabonner de ce sujet, visitez le site https://groups.google.com/d/topic/scub-foundation/NyPW3AApLtU/unsubscribe?hl=fr-FR.
Pour vous d�sabonner de ce groupe et de tous ses sujets, envoyez un e-mail � l'adresse scub-foundati...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .
�
�

adrien.hautot

non lue,
18 avr. 2013, 17:43:1818/04/2013
à scub-fo...@googlegroups.com,adrien...@gmail.com
Le problème vient des retours chariots sous windows (caractère \r). Plutôt que de remplacer des doubles espaces par des tabulations, ce qui n'est pas très utile, j'ai remplacé les \r par un caractère vide pour régler le problème... La méthode pourrait donc ressembler à ça:

    @Test
    public void testExportData() throws Exception {
        // On récupère le jeu de données du fichier XML
        IDataSet dataSet = getDatabaseDataSet();

        // Fichier XML du jeu de données d'import
        File inputFile = new File(INPUT_DATA_SET_FILENAME);
        // On vérifie que le fichier existe
        assertNotNull(inputFile);
        // Fichier XML du jeu de données d'export
        File outputFile = new File(OUTPUT_DATA_SET_FILENAME);
        FlatXmlDataSet.write(dataSet, new FileOutputStream(outputFile));

        // On compare les deux fichiers XML pour vérifier qu'ils sont identiques
        String inputDataSetString = FileUtils.readFileToString(inputFile, "UTF8").replace("\r", "").trim();
        String outputDataSetString = FileUtils.readFileToString(outputFile, "UTF8").replace("\r", "").trim();
        assertEquals(inputDataSetString, outputDataSetString);
    }

Reste à trouver une solution un peu plus propre :).

Cordialement,

Adrien
Répondre à tous
Répondre à l'auteur
Transférer
0 nouveau message