Bonjour,
c est mon premier post, j espère être dans le bon forum
Je désire faire une petite application et je cherche a m organiser pour développer dans un premier temps la partie DB.
J ai décider d utiliser un ensemble de procédure stockées définissant une "API" que le serveur applicatif (Java / tomcat) utilisera pour lire/écrire les données en base (postgresql ou mysql).
(certains post sur ce forum m'ont confortés dans ce choix)
Désirant systématiser / automatiser mes tests, j'ai découvert SqlUnit:
Cette solution me semble à la fois simple et élégante:
- elle ne nécessite pas (forcement) de coder en java
- elle permet (aussi) de définir ses tests par via fichiers XML assez simple à lire/écrire
- elle permet d automatiser le lancement des tests via ANT
- elle génère des rapport de test XML que l on peut mettre en forme
- elle supporte les tests sur les procédures stockées
- L'ensemble peut être contenu dans répertoire indépendant facile à gérer
En fait, c est la seule solution (open source) fonctionnant ainsi que j ai trouvé...
Mais... et oui... il y a un mais... après avoir fait beaucoup d essais, j ai une erreur que je ne comprends pas... Si l'un ou l'une de vous pouviez éclairer ma lanterne, cela pourrait peut être aussi intéresser d'autres personnes...
(j'ai mise en pièce jointe un zip du répertoire contenant les fichiers ci-dessous, j'ai vidé le répertoire SQLunit5)
j ai la même erreur sous windows XP SP2 avec un oracle 10g (version gratuite)
Par avance merci
le message d'erreur:
la configuration:<failure message="net.sourceforge.sqlunit.SQLUnitException: Unresolved compilation problem: 
	The constructor XMLOutputter(Format) is undefined
"/>
OS: MAC OSX 10.5
Java: 1.5.0_20-141
DB: MySql 5.1.31
le driver MySql (mysql-connector-java-5.0.8-bin.jar) est dans JAVA_HOME/lib/ext
Structure de fichiers:
/MyTest
L"properties" (folder)
L"connection.properties" (files)
L"WebTestReport.xsl" (files)
L"results" (folder)
L"sqlunit-5.0" (folder)
L"tests" (folder)
L"test01.xml" (files)
L"build.xml"
L"run.sh"
Contenu du fichier "connection.properties":
Contenu du fichier "run.sh":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 # # properties/connection.properties # # mysql-connector-java-5.0.8-bin.jar sqlunit.driver = com.mysql.jdbc.Driver sqlunit.url = jdbc:mysql://localhost:3306/test sqlunit.user = user sqlunit.password = user
Contenu du fichier "build.xml":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 export CLASSPATH=/testsql/sqlunit-5.0/lib/log4j-1.2.13.jar:/testsql/sqlunit-5.0/lib/junit.jar:/testsql/sqlunit-5.0/lib/jdom.jar:. echo $CLASSPATH ant run
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <?xml version="1.0"?> <project name="slqlunit" basedir="."> <description>SQLUnit tests tasks</description> <!-- Sets variables which can later be used. --> <!-- The value of a property is accessed via ${} --> <property name="sql.debug" value="true" /> <!-- This is specified once per buildfile --> <target name="def"> <taskdef name="sqlunit" classname="net.sourceforge.sqlunit.ant.SqlunitTask" > <classpath> <pathelement location="${basedir}\sqlunit-5.0\lib\sqlunit-5.0.jar" /> </classpath> </taskdef> </target> <!-- This is repeated for each test or group of tests in case of nested filesets --> <target name="run" depends="def"> <sqlunit testfile="${basedir}\tests\test02.xml" haltOnFailure="false" debug="${sql.debug}" logfile="${basedir}\results\result_test01.xml" logformat="canoo"/> </target> <!-- reporting --> <target name="htmlreport"> <delete file="${basedir}\results\result_test01.html" /> <xslt in="${basedir}\results\result_test01.xml" out="${basedir}\results\result_test01.html" style="${basedir}\properties\WebTestReport.xsl" /> </target> </project>
Contenu du fichier "test01.xml":
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?xml version="1.0"?> <!DOCTYPE sqlunit SYSTEM "file:docs/sqlunit.dtd"> <sqlunit> <connection connection-id="1" extern="C:\mytest\properties\connection.properties" /> <!-- basic tests of SQLUnit functionality --> <test name="Testing DataBase access"> <sql connection-id="1"> <stmt>SELECT 1 as col1 FROM DUAL</stmt> </sql> <result> <resultset id="1"> <row id="1"> <col id="1" name="col1" type="INTEGER">1</col> </row> </resultset> </result> </test> </sqlunit>
Partager