Closed GoogleCodeExporter closed 9 years ago
la révision 710 est obsolète, 'class-modifier' n'est plus une clé valide.
Dans votre fichier META-INF/gwt-test-utils.properties, vous ne devriez avoir
qu'une seule entrée :
com/masociete/monprojet/monFichierGWT.gwt.xml = module-file
Cette entrée permet de déclarer le chemin d'accès dans le classpath de test
vers le module GWT a testé. Si vous possédez plusieurs modules GWT dans votre
application, vous pouvez déclarer plusieurs clés "module-file".
Original comment by gael.laz...@gmail.com
on 3 May 2011 at 12:52
[deleted comment]
Bonjour
Merci de votre réponse si vite.
Au niveau de mon fichier de propriété voici mon nouveau fichier de proprieté.
Je n'ai que une seule ligne qui est celle ci:
com/test/gwtTestUtils/GwtTestUtils.gwt.xml = module-file
Dois je modifier le fichier GwtTestUtils.gwt.xml ?
Je demande ceci car j obtiens cette erreur lorsque je lance mon test unitaire.
java.lang.ExceptionInInitializerError
at com.octo.gwt.test.GwtRunnerBase.<init>(GwtRunnerBase.java:34)
at com.octo.gwt.test.GwtRunner.<init>(GwtRunner.java:25)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:32)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:41)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:31)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: com.octo.gwt.test.exceptions.GwtTestPatchException:
java.lang.ArrayStoreException:
sun.reflect.annotation.TypeNotPresentExceptionProxy
at com.octo.gwt.test.internal.GwtClassLoader.<clinit>(GwtClassLoader.java:44)
... 20 more
Caused by: java.lang.ArrayStoreException:
sun.reflect.annotation.TypeNotPresentExceptionProxy
Merci de votre aide
Original comment by frankje...@gmail.com
on 3 May 2011 at 1:52
[deleted comment]
J ai oublié de préciser que ma classe de test contient la method :
@Override
public String getModuleName() {
return "module-file";
}
J utilise le dernier jar du disponible uploader le 2 mai
(gwt-test-utils-0.28-20110502.091625-9)
Original comment by frankje...@gmail.com
on 3 May 2011 at 2:21
Il y a un problème dans votre configuration, qui peut s'expliquer par
l'absence ttemporaire de documentation pour faire fonctionner la version
0.28-SNAPSHOT.
Vous n'avez pas à réutiliser les fichier gwt-test-utils.properties présents
dans le framework, mais à créer le votre dans votre classpath de test.
Voici donc un exemple complet qui pourra vous aider :
avec l'application GWT suivante :
- com.mycompany.myapp
+ MyGwtModule.gwt.xml
- com.mycompany.myapp.client
- com.mycompany.myapp.server
- com.mycompany.myapp.shared
1) Votre fichier META-INF/gwt-test-utils.properties doit déclarer votre
fichier de configuration MyGwtModule.gwt.xml :
com/mycompany/myapp/MyGwtModule.gwt.xml = module-file
=> module file déclare le chemin relatif vers votre fichier de conf dans le
classpath de test.
2) dans votre classe de test (qui étend GwtTest) :
de test contient la method :
@Override
public String getModuleName() {
return "com.mycompagny.myapp. MyGwtModule";
}
=> Le nom qualifié de votre module, sans
l'extension ".gwt.xml"
3) lancez vos tests. Il se peut que vous rencontriez une dernière erreur de
configuration gwt-test-utils si le framework n'arrive pas à retrouver votre
hostpage HTML. Dans ce cas, il faudra overrider la methode protected
"getHostPageRelativePath(String moduleName)" de GwtTest (de mémoire) pour
indiquer le path vers le fichier html du module GWT testé (même logique que
pour 'module-file')
Toute ces explications seront mises à dispostion dans la doc officielle du
framework lors de la release de la 0.28.
Original comment by gael.laz...@gmail.com
on 4 May 2011 at 6:34
Je vous remercie enormement pour votre réactivité.
Au niveau de mon repertoire de test j'ai créé un repertoire META-INF où j'ai
deposé mon fichier gwt-test-utils.properties.
Mon fichier de propriété contient uniquement cette valeur:
com/test/gwtTestUtils/GwtTestUtils.gwt.xml = module-file
Dans ma classe de test j'ai modifier la valeur de retour de la method
getModuleName.
Voici la method:
@Override
public String getModuleName() {
return "com.test.gwtTestUtils.GwtTestUtils";
}
J'ai toujours l erreur de configuration.
Par contre je n'ai pas overrider la methode protected de
getHostPageRelativePath car je n'ai pas bien commpris ce qu'il faut mettre
dedans.
Je vous remercie enormement pour votre réactivité.
Merci
Original comment by frankje...@gmail.com
on 4 May 2011 at 12:57
Pouvez-vous joindre votre fichier GwtTestUtils.gwt.xml ?
Pour la méthode à overrider :
protected String getHostPagePath(String moduleFullQualifiedName),
il faut retourner le chemin vers le fichier HTML utilisé par votre module GWT.
Exemple :
@Override
protected String getHostPagePath(String moduleName) {
return "com/octo/gwt/test/demo/public/index.html";
}
Original comment by gael.laz...@gmail.com
on 4 May 2011 at 1:50
[deleted comment]
Bonjour,
Vous trouverez en piece jointe mon fichier GwtTestUtils.gwt.xml
Original comment by frankje...@gmail.com
on 4 May 2011 at 2:00
Attachments:
Il n'y a rien à signaler dans le fichier.. Pourriez-vous donc m'envoyer
l'ensemble de votre projet car je ne comprends pas où est le problème..
Original comment by gael.laz...@gmail.com
on 4 May 2011 at 2:04
[deleted comment]
Bonjour,
Pouvez-vous me donner quelques informations, expliquant les raisons du
problèmes.
Est ce que le problème vient de ma part?
Je vous remercie encore.
Original comment by frankje...@gmail.com
on 5 May 2011 at 9:02
J'ai finalement réussi à exécuter les tests avec votre application.
Dans votre cas, il faut overrider les méthodes de GwtTest Comme ceci :
@Override
public String getModuleName() {
return "com.test.gwtTestUtils.GwtTestUtils";
}
@Override
protected String getHostPagePath(String moduleName) {
return "war/GwtTestUtils.html";
}
=> getHostPagePath donne le chemin vers le fichier HTML qui sera manipulé par
GWT.
A noter :
// ensure label is empty
Assert.assertEquals("", label.getText());
au lieu de
Assert.assertEquals(null, label.getText());
Vous avez mélanger gwt-test-utils-0.28-SNAPSHOT avec gwt-test-utils-csv-0.27
etc. Il faut utiliser les mêmes versions de tous les modules gwt-test-utils,
donc tout en 0.28-SNAPSHOT.
Le test passe ensuite au vert :-)
Original comment by gael.laz...@gmail.com
on 5 May 2011 at 12:27
[deleted comment]
[deleted comment]
[deleted comment]
Il manque encore des dépendances dans le classpath
- htmlparser-1.6.jar (http://htmlparser.sourceforge.net/)
Comme vous avez inclus gwt-test-utils-gxt jar, il faudra également ajouter
gwt-css-selector-0.28-SNAPSHOT.jar. Vous pouvez le télécharger ici
http://forge.octo.com/nexus/content/repositories/snapshots/se/fishtank/gwt-css-s
electors/
Je vais changer le package "se.fishtank" par "com.octo.gwt.test" pour que les
jars soient centralisées en un unique endroit.
Enfin, il faut ajouter un seul des deux module spring, soit
"gwt-test-utils-spring2", soit "gwt-test-utils-spring3". Mais pas les deux ;-)
tout est détaillé ici :
http://code.google.com/p/gwt-test-utils/wiki/HowToUse#Without_Maven
Original comment by gael.laz...@gmail.com
on 5 May 2011 at 1:44
[deleted comment]
Egalement sur windows 7, SP1
Si le problème persiste, essayez dans un premier temps d'enlever
gwt-test-utils-gxt et gwt-test-utils-spring2/3 du classpath.
Original comment by gael.laz...@gmail.com
on 5 May 2011 at 2:03
Les Tests unitaires passent après avoir enlevé gwt-test-utils-gxt et
gwt-test-utils-spring3.
Je vous remercie enormement.
Mais par curiosité si j enleve ces deux jar (spring 3 et gwt-test-utils) et
que les TU fonctionnent, est ce que ca signifie qu'il y a une incompatibilité
avec ce deux jars et les autres jar du framework.
Merci de votre reponse
Original comment by frankje...@gmail.com
on 5 May 2011 at 2:21
Non, c'est surement qu'il vous manque une dépendance tierce.
Essayez d'ajouter spring3 : normalement le test passe.
Ensuite, ajoutez gwt-test-utils-gxt, qui requiert
- gxt-2.2.jar ou supérieur
- gwt-css-selector-0.28-SNAPSHOT.jar
Je pense que c'est une de ces deux dépendances qu'il vous manque.
Original comment by gael.laz...@gmail.com
on 5 May 2011 at 2:29
Avez vous valider l'utilisation de gwt-test-utils-gxt avec les dépendances
gxt-2.2.jar et gwt-css-selector-x.jar ?
J'ai modifié le groupId de gwt-css-selector, vous trouverez le jar au même
endroit que ceux de gwt-test-utils :
http://forge.octo.com/nexus/content/repositories/snapshots/com/octo/gwt/test/
A noter également qu'avec la dernière 0.28-SNAPSHOT que je viens de
déployer, vous n'avez plus besoin d'overrider getHostPagePath(..) puisque
"war/GwtTestUtils.html" est considéré comme un chemin de fichier HTML par
défaut pour votre module "com.test.gwtTestUtils.GwtTestUtils"
Merci pour votre confirmation, que je puisse fermer l'anomalie :-)
Original comment by gael.laz...@gmail.com
on 7 May 2011 at 3:54
Bonjour désolé pour répondre si tard.
Je viens de tester en prenant la derniere version non beta de 0.28 et ça
fonctionne bien.
Par contre,j'ai deux petites questions qui ont rien à voir avec le sujet du
départ.
Au niveau du code de la méthode checkRPCCallSuccess() ce situant à l url
http://code.google.com/p/gwt-test-utils/wiki/MockingRpcServices, pourquoi le
assertEquals a la valeur "mocked call" alors que avant on a fait ceci
// click to call server back
Browser.click(button);
J'ai bien vu que dans la méthode checkRPCCallSuccess on a fait
expectServiceAndCallbackOnSuccess("mocked call") mais je comprends pas bien
pourquoi dans le assertEquals on a pas "vous avez cliquez sur le bouton".
Ma deuxieme question concerne la methode "getNodeObjectFinder", le code se
situe à l url
"http://code.google.com/p/gwt-test-utils/wiki/HowToWriteCsvScenario".
Pourquoi au niveau de "rpcComposite" au niveau de la classe anonyme, on met
"RootPanel.get().getWidget(2), node" alors que dans "simpleComposite" on a mis
"RootPanel.get().getWidget(0), node". Je ne comprends pas bien pourquoi car si
on regarde le code de la méthode onModueLoad on fait ceci: c1 = new
SimpleComposite();
RootPanel.get().add(c1);
c2 = new RPCComposite();
RootPanel.get().add(c2);
D'après moi on devrait écrire "RootPanel.get().getWidget(1), node" au niveau
de "rpcComposite".
Je vous remercie du renseignement
Original comment by frankje...@gmail.com
on 15 May 2011 at 7:31
Réponse 1 :
- Le click déclenche l'appel au service, qui est mocké et renvoie "mocked
call" lors de la simulation d'un succès(via expectServiceAndCallbackOnSuccess).
- Notre IHM utilise le résultat du serveur pour mettre à jour via :
public void onSuccess(String result) {
label.setText(result);
}
- On peut donc faire l'assert sur le contenu du label avec ce qui a été
mocké par le serveur.
Réponse 2 : Il s'agissait effectivement d'une erreur ! c'est bien
"RootPanel.get().getWidget(1)" qu'il faut mettre, j'ai mis à jour la page wiki
correspondante, merci beaucoup pour votre feedback !
Je clos donc l'anomalie puisque tout va bien sur la 0.28.
Merci ;-)
Original comment by gael.laz...@gmail.com
on 17 May 2011 at 11:43
Hello,
I am starting with a simple GWTTest class. I always get the error:
at com.octo.gwt.test.GwtRunnerBase.<init>(GwtRunnerBase.java:34)
at com.octo.gwt.test.GwtRunner.<init>(GwtRunner.java:25)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.junit.internal.requests.ClassRequest.buildRunner(ClassRequest.java:33)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:28)
at org.apache.maven.surefire.junit4.JUnit4TestSet.<init>(JUnit4TestSet.java:45)
at org.apache.maven.surefire.junit4.JUnit4DirectoryTestSuite.createTestSet(JUnit4DirectoryTestSuite.java:56)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.locateTestSets(AbstractDirectoryTestSuite.java:96)
at org.apache.maven.surefire.Surefire.createSuiteFromDefinition(Surefire.java:209)
at org.apache.maven.surefire.Surefire.run(Surefire.java:156)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Caused by: com.octo.gwt.test.exceptions.GwtTestConfigurationException: Cannot
find any 'module-file' setup in configuration file
'META-INF/gwt-test-utils.properties'
at com.octo.gwt.test.internal.ConfigurationLoader.readFiles(ConfigurationLoader.java:281)
at com.octo.gwt.test.internal.ConfigurationLoader.<init>(ConfigurationLoader.java:84)
at com.octo.gwt.test.internal.ConfigurationLoader.createInstance(ConfigurationLoader.java:47)
at com.octo.gwt.test.internal.GwtClassLoader.<init>(GwtClassLoader.java:77)
at com.octo.gwt.test.internal.GwtClassLoader.<clinit>(GwtClassLoader.java:39)
I know this is because it cannot load the module-file specified.
Where do you place the META-INF/gwt-test-util.properties?
I have following source folders
src/main/java
-> com.mycompany.myapp -> myapp.gwt.xml
-> com.mycompany.myapp.client -> MyApp
src/main/webapp
-> WEB-INF
src/test/java
-> com.mycompany.myapp -> MyAppTest
src/test/webapp
->META-INF/gwt-test-utils.properties
In my MyAppTest I have overridden getModuleName
@Override
public String getModuleName() {
return "com.mycompany.myapp.client.JIRAUser";
}
What is wrong?
Original comment by anikaa...@gmail.com
on 25 May 2011 at 9:05
the META-INF/gwt-test-utils.properties file should be in your test classpath.
By default, src/test/webapp is not added in the test classpath by maven. So,
you should put it in src/test/resources if you don't want to customize your
maven configuration.
Hope that helps !
Original comment by gael.laz...@gmail.com
on 25 May 2011 at 9:10
Original issue reported on code.google.com by
frankje...@gmail.com
on 3 May 2011 at 9:36