Bonsoir,
Depuis Maven2, j'ai le message d'erreur suivant lorsque je lance mon TestNg.
Parameter 'outilStockage.pz.racine' is required by @Configuration on method beforeTestGed
but has not been marked @Optional or defined
Le fichier src/test/resources/testng.xml existe bien avec les parametres et dans le source les annotations sont presente a l'appel de la methode beforeTestGed.
Je seche sur le parametre soit disant manquant ?
J'ai l'impression que mon fichier testng.xml n'est pas pris en compte !!
J'utilise Helios, le JDK 1.6.0.22 et maven 2.2.21
Dans mon pom.xml je force source et target a 1.5 pour le JDK .
Le projet eclipse a ete génére a partir du pom par un mvn eclipse:eclipse
Merci d'avance
Philippe
Mes sources
Message d'erreur
src/test/resources/testng.xmlCode:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 <testng-results> <reporter-output> </reporter-output> <suite name="Default suite" duration-ms="32" started-at="2010-11-04T07:04:28Z" finished-at="2010-11-04T07:04:28Z"> <groups> <group name="functional"> <method signature="pr.archivage.traitements.test.TraiterArchiveTest.testDonnerArchiveSansPDF()" name="testDonnerArchiveSansPDF" class="pr.archivage.traitements.test.TraiterArchiveTest"/> </group> </groups> <test name="pr.archivage.traitements.test.TraiterArchiveTest" duration-ms="32" started-at="2010-11-04T07:04:28Z" finished-at="2010-11-04T07:04:28Z"> <class name="pr.archivage.traitements.test.TraiterArchiveTest"> <test-method status="FAIL" signature="beforeTestGed(java.lang.String, java.lang.String, java.lang.String, java.lang.String)" name="beforeTestGed" is-config="true" duration-ms="0" started-at="2010-11-04T07:04:28Z" finished-at="2010-11-04T07:04:28Z"> <exception class="org.testng.TestNGException"> <message> <![CDATA[ Parameter 'outilStockage.pz.racine' is required by @Configuration on method beforeTestGed but has not been marked @Optional or defined in C:\Documents and Settings\U1\Local Settings\Temp\testng-eclipse--359975533\testng-customsuite.xml]]> </message> <full-stacktrace> <![CDATA[org.testng.TestNGException: Parameter 'outilStockage.pz.racine' is required by @Configuration on method beforeTestGed but has not been marked @Optional or defined in C:\Documents and Settings\U1\Local Settings\Temp\testng-eclipse--359975533\testng-customsuite.xml at org.testng.internal.Parameters.createParameters(Parameters.java:142) at org.testng.internal.Parameters.createParameters(Parameters.java:320) at org.testng.internal.Parameters.createConfigurationParameters(Parameters.java:76) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:186) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:126) at org.testng.TestRunner.beforeRun(TestRunner.java:624) at org.testng.TestRunner.run(TestRunner.java:592) at org.testng.SuiteRunner.runTest(SuiteRunner.java:315) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:310) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:272) at org.testng.SuiteRunner.run(SuiteRunner.java:221) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:952) at org.testng.TestNG.runSuitesLocally(TestNG.java:889) at org.testng.TestNG.run(TestNG.java:818) at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:89) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:144) ]]> </full-stacktrace> </exception> </test-method> <test-method status="SKIP" signature="beforeTestHibernate(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)" name="beforeTestHibernate" is-config="true" duration-ms="0" started-at="2010-11-04T07:04:28Z" finished-at="2010-11-04T07:04:28Z"> </test-method> <test-method status="SKIP" signature="testDonnerArchiveSansPDF()" name="testDonnerArchiveSansPDF" duration-ms="0" started-at="2010-11-04T07:04:28Z" finished-at="2010-11-04T07:04:28Z"> </test-method> <test-method status="SKIP" signature="afterTest()" name="afterTest" is-config="true" duration-ms="0" started-at="2010-11-04T07:04:28Z" finished-at="2010-11-04T07:04:28Z"> </test-method> </class> </test> </suite> </testng-results>
Code classe de test dans src/test/java/pr/archivage/traitements/testCode:
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 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="SuiteClass" verbose="5" > <parameter name="hibernate.connection.url" value="jdbc:mysql://192.168.17.4:3306/RR"/> <parameter name="hibernate.connection.username" value="toto"/> <parameter name="hibernate.connection.password" value="xxx"/> <parameter name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <parameter name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> <parameter name="outilStockage.pz.racine" value="C:/StockageGed"/> <parameter name="outilStockage.pz.sleepTime" value="2"/> <parameter name="outilStockage.pz.tentative" value="10"/> <parameter name="outilStockage.debug.niveau" value="WARNING"/> <test name="FunctionalTest"> <groups> <run> <include name="functional"/> </run> </groups> <classes> <class name="pr.archivage.traitements.test.TraiterArchiveTest"/> </classes> </test> </suite>
testng-customsuite.xml récupére a la voléeCode:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124 package pr.archivage.traitements.test; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.util.List; import java.util.Properties; import org.testng.TestNG; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import pr.archivage.exceptions.ArchivageException; import pr.archivage.traitements.TraiterArchive; import pr.archivage.traitements.impl.TraiterArchiveImpl; import pr.persistence.configuration.HibernateUtil; import pr.persistence.model.Z_VGED; import pr.persistence.stockage.physique.StockageService; import pz.utils.gen.PDebugLogServiceAdapter; import pz.utils.gen.PILogService; import pz.utils.gen.PLoggueurFichier; public class TraiterArchiveTest { private TraiterArchive traiterArchive; private String nirAvecPdfValid = "2570109110031"; private String nirSansPdfValid = "2570109110001"; private String nomValid = "DUPONT"; private String nirInvalid = "1234567891234"; private String nomInvalid = "TOTO"; @Parameters({ "hibernate.connection.url", "hibernate.connection.username", "hibernate.connection.password", "hibernate.connection.driver_class", "hibernate.dialect" }) @BeforeTest (groups = { "functional" }) public void beforeTestHibernate(String url, String username, String password, String driverClass, String dialect) { Properties prop = new Properties(); prop.setProperty("hibernate.connection.url", url); prop.setProperty("hibernate.connection.username", username); prop.setProperty("hibernate.connection.password", password); prop.setProperty("hibernate.connection.driver_class", driverClass); prop.setProperty("hibernate.dialect", dialect); prop.setProperty("hibernate.current_session_context_class", "thread"); HibernateUtil.init(prop); HibernateUtil.beginTransaction(); traiterArchive = new TraiterArchiveImpl(); } @Parameters({ "outilStockage.pz.racine", "outilStockage.pz.sleepTime", "outilStockage.pz.tentative", "outilStockage.debug.niveau"}) @BeforeTest (groups = { "functional" }) public void beforeTestGed(String racine, String sleepTime, String tentative, String niveau) throws IOException { Properties prop = new Properties(); prop.setProperty("outilStockage.pz.racine", racine); prop.setProperty("outilStockage.pz.sleepTime", sleepTime); prop.setProperty("outilStockage.pz.tentative", tentative); prop.setProperty("outilStockage.debug.niveau", niveau); StockageService.setProperties(prop); String strNiveau = prop.getProperty("outilStockage.debug.niveau"); int niv = PDebugLogServiceAdapter.getNiveauInt(strNiveau); PDebugLogServiceAdapter loggueur = new PDebugLogServiceAdapter( niv,new PLoggueurFichier("../log/outilStockageVal.log")); StockageService.setLoggueur(loggueur); } @AfterTest (groups = { "functional" }) public void afterTest() { HibernateUtil.commit(); HibernateUtil.shutdown(); } @Test (groups = { "functional" }) public void testDonnerArchiveAvecPDF(){ try { List<Z_VGED> listZVGED = traiterArchive.donnerArchive(nirAvecPdfValid, nomValid); assert listZVGED != null : "listZVGED doit tre diffrent de null"; assert listZVGED.size()>= 1 : "listZVGED une taille infrieur 1"; assert listZVGED.get(0).getZ_VGED_SRC() != null : "La source PDF est absente"; } catch (ArchivageException e) { throw new RuntimeException("Une ArchiveAxception est survenue: " + e.getErrorType() + ", " + e.getMessage(), e ); } } @Test (groups = { "functional" }) public void testDonnerArchiveSansPDF(){ try { List<Z_VGED> listZVGED = traiterArchive.donnerArchive(nirSansPdfValid, nomValid); assert listZVGED != null : "listZVGED doit tre diffrent de null"; assert listZVGED.size()== 1 : "listZVGED une taille diffrente de 1"; assert listZVGED.get(0).getZ_VGED_SRC() == null : "La source PDF est prsente"; } catch (ArchivageException e) { throw new RuntimeException("Une ArchiveAxception est survenue"); } } @Test (groups = { "functional" }) public void testDonnerArchiveAvecNirNull(){ boolean isNotAnArchiveException = true; try { traiterArchive.donnerArchive(null, nomValid); } catch (ArchivageException e) { isNotAnArchiveException = false; } if (isNotAnArchiveException){ throw new RuntimeException("Une ArchiveAxception n'est pas survenue"); } } public static void main(String[] args) { String arg[] = {"-d", "target/test-reports", "src/test/resources/testng.xml"}; TestNG.main(arg); } }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <!DOCTYPE suite (View Source for full doctype...)> - <suite name="Default suite" junit="false" parallel="false" configfailurepolicy="skip" thread-count="5" skipfailedinvocationcounts="false" data-provider-thread-count="10"> <parameter name="outilStockage.debug.niveau" value="WARNING" /> <parameter name="outilStockage.pz.racine" value="C:/StockageGed" /> <parameter name="hibernate.connection.url" value="jdbc:mysql://192.168.17.4:3306/RR" /> <parameter name="hibernate.connection.username" value="toto" /> <parameter name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> <parameter name="hibernate.connection.password" value="xxx" /> <parameter name="outilStockage.pz.sleepTime" value="2" /> <parameter name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> <parameter name="outilStockage.pz.tentative" value="10" /> - <test verbose="2" name="pr.archivage.traitements.test.TraiterArchiveTest" junit="false" skipfailedinvocationcounts="false" preserve-order="false"> - <classes> <class name="pr.archivage.traitements.test.TraiterArchiveTest" /> </classes> </test> </suite>