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
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
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>
src/test/resources/testng.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
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>
Code classe de test dans src/test/java/pr/archivage/traitements/test
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
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);
}
}
testng-customsuite.xml récupére a la volée
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
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>