Page 1 sur 1

Diff entre un export DBUNIT d'une table et la requete select *

Publié : mar. janv. 22, 2019 3:53 pm
par Victor
Bjr,

Après avoir extrait maTable avec DBeaver au format DBUnit et positionné le fichier xml dans resources/sql dans mon projet Sq-TA, au moment de l'exécution du test et le passage de la requête SQL du type "select * from maTable" le résultat du test est [ERROR] 'The two compared datasets are different.' alors qu'il n'y a aucune différence/aucune action en base...
Quelle peut être la cause ? Merci !


Voici mon code dans Sq-TA :

LOAD sql/grille_produit_actuel.sql AS query.file
CONVERT query.file TO query.sql AS my.query


# LOAD dbunit/resultsets/grille_produit_DBUnit.xml TO XML DATASET expected.dataset


EXECUTE execute WITH my.query ON maBase_db AS my_query_result
CONVERT my_query_result TO dataset.dbunit AS actual.dataset

ASSERT actual.dataset IS equal WITH expected.dataset


Et le résultat obtenu dans -diff :
The first dataset does not contains the grille_produits dataset.

Re: Diff entre un export DBUNIT d'une table et la requete select *

Publié : ven. juin 07, 2019 5:16 pm
par edegenetais
bonjour,
la raison de l'échec de comparaison est que la conversion par défaut produit un dataset contenant la table 'dataset'.
Vous avez donc deux possibilités :
1 - /!\ uniquement si votre dataset n'est utilisé que pour la comparaison /!\
=> dans le dataset, renommer la table en 'dataset'

2 - possible dans tous les cas :

Ajoutez le paramètres optionnel tableName à votre CONVERT de la manière suivante, pour que le result set porte le nom de votre table :

CONVERT insertion_query.resultset TO dataset.dbunit (dataset) USING $(tablename:<name_Table>) AS dataset

ex : CONVERT insertion_query.resultset TO dataset.dbunit (dataset) USING $(tablename:grille_produits) AS dataset

(reférence https://sites.google.com/a/henix.fr/wik ... set.dbunit)