TP05 : peut on faire tous les tests avec ant

Modérateurs : graffion, jmdouin, agoncal, mlebihan

Répondre
KDEIH
Messages : 52
Inscription : 11 oct. 2011 11:24

TP05 : peut on faire tous les tests avec ant

Message par KDEIH » 27 nov. 2012 3:20

Bonjour,

Peut on avec ant et le build.xml fourni, faire tous les tests sans avoir à ouvrir les fenêtres de commande dos pour lancer le rmiregistry par la commande startServer.bat fournie ? Y a t-il un yaps-xxxx prévu à cet effet dans build .xml pour jouer dans Eclipse le rôle d'une console coté serveur ?
Et un autre yaps-yyyy prévu pour jouer le rôle d'une console client ?

Ou bien est ce que le yaps-mark est il sensé jouer tous ces rôles ?

En tout cas en essayant de lancer yaps-mark, j 'ai plein d 'erreurs de type : Could not bind a service. Y a t-il une étape préalable à faire avant de lancer yaps-mark de ant ?

Cdlt.

graffion
Messages : 663
Inscription : 21 juin 2005 14:05

Re: TP05 : peut on faire tous les tests avec ant

Message par graffion » 27 nov. 2012 15:24

Il existe une cible yaps-run qui lance le client swing mais rien n'est présent dans le build.xml pour lancer le serveur.
Une seule solution donc (précisée dans la section "Recette utilisateur" de l'énoncé) :
Pour pouvoir exécuter correctement ces classes de test, il faut d'abord lancer le serveur RMI (en exécutant le script startServer.bat du répertoire Yaps/bin dans une fenêtre de commandes dédiée).

KDEIH
Messages : 52
Inscription : 11 oct. 2011 11:24

Re: TP05 : peut on faire tous les tests avec ant

Message par KDEIH » 27 nov. 2012 15:35

Merci, mais en exécutant le batch startServer.bat du répertoire Yaps/bin (Cf mon mail précédent), j'ai le message d'anomalie suivant :

27 nov. 2012 00:19:57 com.yaps.petstore.server.RegisterServices main
GRAVE: Petstore services couldn't be registered

Je ne comprend pas la raison du plantage de la méthode statique main de la classe RegisterServices qui elle contient le code suivant :
try {
Naming.rebind(CATALOG_SERVICE, new CatalogService());
Naming.rebind(CUSTOMER_SERVICE, new CustomerService());
Naming.rebind(ORDER_SERVICE, new OrderService());
Trace.info(_cname, mname, "Petstore services are registered.");
} catch (Exception e) {
Trace.severe(_cname, mname, "Petstore services couldn't be registered");
Trace.throwing(_cname, mname, e);
}

Pourquoi les rebind() se sont mal passés dans ce code ?

Cdlt.

lego
Messages : 35
Inscription : 04 oct. 2011 0:06
Contact :

Re: TP05 : peut on faire tous les tests avec ant

Message par lego » 27 nov. 2012 17:24

Pareil ...

bobw
Messages : 50
Inscription : 02 nov. 2012 19:48

Re: TP05 : peut on faire tous les tests avec ant

Message par bobw » 27 nov. 2012 23:57

A mon avis, il manque des choses dans le code comme les permissions d’accès et le petit fichier policy qui va bien. Mais comme il est interdit de modifier les classes qu’on nous donne, je ne vois pas quel hack il faut encore utiliser pour faire marcher ca...

bobw
Messages : 50
Inscription : 02 nov. 2012 19:48

Re: TP05 : peut on faire tous les tests avec ant

Message par bobw » 28 nov. 2012 16:39

Bonjour,

KDEIH et Lego, êtes-vous arrivés à lancer les tests pour le TP5. Pour ma part, c’est ok pour eclipse et ant.

A++

KDEIH
Messages : 52
Inscription : 11 oct. 2011 11:24

Re: TP05 : peut on faire tous les tests avec ant

Message par KDEIH » 28 nov. 2012 16:55

Non. Je bloque toujours sur le message suivant :
28 nov. 2012 1100:17:09 com.yaps.petstore.server.RegisterServices main
GRAVE: Petstore services couldn't be registered

Pourquoi les rebind() de la méthode statique main de la classe RegisterServices dont le code est ci-dssous ont ils levés une exception ?

try {
Naming.rebind(CATALOG_SERVICE, new CatalogService());
Naming.rebind(CUSTOMER_SERVICE, new CustomerService());
Naming.rebind(ORDER_SERVICE, new OrderService());
Trace.info(_cname, mname, "Petstore services are registered.");
} catch (Exception e) {
Trace.severe(_cname, mname, "Petstore services couldn't be registered");
Trace.throwing(_cname, mname, e);
}

As tu fais quelque chose de supplémentaires pour que les rebind() fonctionnent ?

Merci d'avance.

bobw
Messages : 50
Inscription : 02 nov. 2012 19:48

Re: TP05 : peut on faire tous les tests avec ant

Message par bobw » 28 nov. 2012 17:23

Oui,

Ma procédure est sous mac ou linux mais je pense que tu pourras transposer cela facilement sous Windows.

1. je pars d’une base saine c’est à dire sans que les classpath soit modifiés.
2. il faut renseigner MYSQL_HOME et JUNIT_HOME en ligne de commandes comme pour tous les TPs.
3. tu te rends dans le repertoire Yaps ou se trouve ton projet.
4. il faut creer un fichier de policy, je l’ai nommé security.policy et il contient ces lignes :

Code : Tout sélectionner

grant {
    permission java.security.AllPermission;
};
5. tu ouvres eclipse et tu cliques sur le fichier RegisterServices.java tu fais un click droit Run as -> Run Configurations
6. il faut aller dans l’onglet Arguments puis tu entres en bas de l’écran dans le champs de textes qui se nomme VM arguments ceci :
(Attention tu devras remplacer par le chemin d’accès ou se trouve (ca sera plus des trucs styles c:\toto\tata\titi\security.policy que les /Users/bobw/... le fichier security.policy que tu as crée à l’étape 4, chez moi :)

Code : Tout sélectionner

-Djava.security.policy=/Users/bobw/TP5/Yaps/lib/security.policy
7. tu retournes en console, la ou tu étais en étape 3. Tu tapes :
export CLASSPATH=./bin
enfin sous windows cela sera :
set CLASSPATH=.\bin
8. tu lances mysql, sous mac, je fais (sous windows ca doit être lancé par défaut quand tu lances wamp)
sudo /usr/local/mysql/bin/mysqld_safe
(il faudra taper son mdp utilisateur et ca doit etre ok)
9. toujours dans le repertoire Yaps, je tapes :

Code : Tout sélectionner

rmiregistry
8. tu retournes sous eclipses et tu fais une nouvelles fois click droit sur le fichier RegisterServices.java puis Run As -> Run Configurations -> Run
A ce moment, j’ai ceci dans la console eclipse :

Code : Tout sélectionner

28 nov. 2012 16:16:05 com.yaps.petstore.server.RegisterServices main
INFO: Petstore services are registered.
10. Ensuite tu click sur le fichier AllTests.java et tu fais click droit Run As -> Junit Test.
Chez moi tout se passe correctement.
11. En console toujours dans le repertoire Yaps, et tu ne fermes pas Eclipse !!! , tu ecris :

Code : Tout sélectionner

 
ant yaps-test

Buildfile: /Users/bobw/Cnam.GLG203/TP5/git/Yaps/build.xml

check:

yaps-prepare:
     [echo] Setup the Yaps environment

yaps-compile:
     [echo] Compile the YAPS classes
    [javac] /Users/bobw/Cnam.GLG203/TP5/git/Yaps/build.xml:137: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
     [echo] Compile the YAPS test classes
    [javac] /Users/bobw/Cnam.GLG203/TP5/git/Yaps/build.xml:145: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

yaps-test:
     [echo] Tests the application
    [junit] Running AllTests
    [junit] Testsuite: AllTests
    [junit] Tests run: 99, Failures: 0, Errors: 0, Time elapsed: 7,808 sec
    [junit] Tests run: 99, Failures: 0, Errors: 0, Time elapsed: 7,808 sec

    [junit] Testcase: testDomainFindCategoryWithInvalidValues took 0,394 sec
    [junit] Testcase: testDomainFindAllCategories took 0,145 sec
    [junit] Testcase: testDomainCreateCategory took 0,137 sec
    [junit] Testcase: testDomainCreateCategoryWithInvalidValues took 0,001 sec
    [junit] Testcase: testDomainUpdateCategoryWithInvalidValues took 0,097 sec
    [junit] Testcase: testDomainUpdateCategory took 0,108 sec
    [junit] Testcase: testCreateValidCustomer took 0 sec
    [junit] Testcase: testCreateCustomerWithInvalidValues took 0 sec
    [junit] Testcase: testDomainFindItemWithInvalidValues took 0,071 sec
    [junit] Testcase: testDomainFindAllItems took 0,213 sec
    [junit] Testcase: testDomainCreateItem took 0,197 sec
    [junit] Testcase: testDomainCreateItemWithInvalidValues took 0 sec
    [junit] Testcase: testDomainCreateItemWithInvalidProduct took 0,011 sec
    [junit] Testcase: testDomainUpdateItemWithInvalidValues took 0,107 sec
    [junit] Testcase: testDomainUpdateItem took 0,173 sec
    [junit] Testcase: testDomainFindOrderLineWithInvalidValues took 0,03 sec
    [junit] Testcase: testDomainFindAllOrderLines took 0,191 sec
    [junit] Testcase: testDomainCreateOrderLine took 0,36 sec
    [junit] Testcase: testDomainCreateOrderLineWithInvalidValues took 0 sec
    [junit] Testcase: testDomainUpdateOrderLineWithInvalidValues took 0,64 sec
    [junit] Testcase: testDomainFindOrderWithInvalidValues took 0,028 sec
    [junit] Testcase: testDomainFindAllOrders took 0,073 sec
    [junit] Testcase: testDomainCreateOrder took 0,064 sec
    [junit] Testcase: testDomainCreateOrderWithInvalidValues took 0 sec
    [junit] Testcase: testDomainUpdateOrderWithInvalidValues took 0,064 sec
    [junit] Testcase: testDomainUpdateOrder took 0,122 sec
    [junit] Testcase: testDomainFindProductWithInvalidValues took 0,026 sec
    [junit] Testcase: testDomainFindAllProducts took 0,081 sec
    [junit] Testcase: testDomainCreateProduct took 0,094 sec
    [junit] Testcase: testDomainCreateProductWithInvalidValues took 0 sec
    [junit] Testcase: testDomainCreateProductWithInvalidCategory took 0,01 sec
    [junit] Testcase: testDomainUpdateProductWithInvalidValues took 0,074 sec
    [junit] Testcase: testDomainUpdateProduct took 0,088 sec
    [junit] Testcase: testDomainDeleteUnknownProduct took 0,005 sec
    [junit] Testcase: testServiceFindCategoryWithInvalidValues took 0,182 sec
    [junit] Testcase: testServiceFindAllCategories took 0,049 sec
    [junit] Testcase: testServiceCreateCategory took 0,052 sec
    [junit] Testcase: testServiceCreateCategoryWithInvalidValues took 0 sec
    [junit] Testcase: testServiceUpdateCategory took 0,055 sec
    [junit] Testcase: testServiceUpdateCategoryWithInvalidValues took 0,001 sec
    [junit] Testcase: testServiceDeleteUnknownCategory took 0,021 sec
    [junit] Testcase: testServiceFindProductWithInvalidValues took 0,017 sec
    [junit] Testcase: testServiceFindAllProducts took 0,086 sec
    [junit] Testcase: testServiceCreateProduct took 0,119 sec
    [junit] Testcase: testServiceCreateProductWithInvalidValues took 0,001 sec
    [junit] Testcase: testServiceCreateProductWithInvalidCategory took 0,055 sec
    [junit] Testcase: testServiceUpdateProduct took 0,116 sec
    [junit] Testcase: testServiceUpdateProductWithInvalidValues took 0,001 sec
    [junit] Testcase: testServiceDeleteUnknownProduct took 0,023 sec
    [junit] Testcase: testServiceFindItemWithInvalidValues took 0,018 sec
    [junit] Testcase: testServiceFindAllItems took 0,142 sec
    [junit] Testcase: testServiceCreateItem took 0,121 sec
    [junit] Testcase: testServiceCreateItemWithInvalidValues took 0,001 sec
    [junit] Testcase: testServiceCreateItemWithInvalidProduct took 0,06 sec
    [junit] Testcase: testServiceUpdateItem took 0,169 sec
    [junit] Testcase: testServiceUpdateItemWithInvalidValues took 0 sec
    [junit] Testcase: testServiceDeleteUnknownItem took 0,022 sec
    [junit] Testcase: testServiceFindCustomerWithInvalidValues took 0,024 sec
    [junit] Testcase: testServiceFindAllCustomers took 0,057 sec
    [junit] Testcase: testServiceCreateCustomer took 0,061 sec
    [junit] Testcase: testServiceCreateCustomerWithInvalidValues took 0 sec
    [junit] Testcase: testServiceUpdateCustomer took 0,104 sec
    [junit] Testcase: testServiceUpdateCustomerWithInvalidValues took 0,001 sec
    [junit] Testcase: testServiceDeleteUnknownCustomer took 0,027 sec
    [junit] Testcase: testServiceFindOrderWithInvalidValues took 0,054 sec
    [junit] Testcase: testServiceCreateOrder took 0,236 sec
    [junit] Testcase: testServiceCreateOrderWithInvalidValues took 0 sec
    [junit] Testcase: testDelegateFindCategoryWithInvalidValues took 0,082 sec
    [junit] Testcase: testDelegateFindAllCategories took 0,124 sec
    [junit] Testcase: testDelegateCreateCategory took 0,112 sec
    [junit] Testcase: testDelegateCreateCategoryWithInvalidValues took 0,022 sec
    [junit] Testcase: testDelegateUpdateCategory took 0,13 sec
    [junit] Testcase: testDelegateUpdateCategoryWithInvalidValues took 0,019 sec
    [junit] Testcase: testDelegateDeleteUnknownCategory took 0,034 sec
    [junit] Testcase: testDelegateFindProductWithInvalidValues took 0,021 sec
    [junit] Testcase: testDelegateFindAllProducts took 0,145 sec
    [junit] Testcase: testDelegateCreateProduct took 0,123 sec
    [junit] Testcase: testDelegateCreateProductWithInvalidValues took 0,013 sec
    [junit] Testcase: testDelegateUpdateProduct took 0,131 sec
    [junit] Testcase: testDelegateUpdateProductWithInvalidValues took 0,012 sec
    [junit] Testcase: testDelegateDeleteUnknownProduct took 0,024 sec
    [junit] Testcase: testDelegateFindItemWithInvalidValues took 0,019 sec
    [junit] Testcase: testDelegateFindAllItems took 0,156 sec
    [junit] Testcase: testDelegateCreateItem took 0,123 sec
    [junit] Testcase: testDelegateCreateItemWithInvalidValues took 0,011 sec
    [junit] Testcase: testDelegateUpdateItem took 0,156 sec
    [junit] Testcase: testDelegateUpdateItemWithInvalidValues took 0,013 sec
    [junit] Testcase: testDelegateDeleteUnknownItem took 0,025 sec
    [junit] Testcase: testDelegateFindCustomerWithInvalidValues took 0,02 sec
    [junit] Testcase: testDelegateFindAllCustomers took 0,098 sec
    [junit] Testcase: testDelegateCreateCustomer took 0,118 sec
    [junit] Testcase: testDelegateCreateCustomerWithInvalidValues took 0,017 sec
    [junit] Testcase: testDelegateUpdateCustomer took 0,12 sec
    [junit] Testcase: testDelegateUpdateCustomerWithInvalidValues took 0,014 sec
    [junit] Testcase: testDelegateDeleteUnknownCustomer took 0,026 sec
    [junit] Testcase: testDelegateFindOrderWithInvalidValues took 0,033 sec
    [junit] Testcase: testDelegateCreateOrder took 0,191 sec
    [junit] Testcase: testDelegateCreateOrderWithInvalidValues took 0,016 sec
    [junit] Testcase: testUniqueId took 0,054 sec

BUILD SUCCESSFUL
Total time: 9 seconds
Tiens moi au jus,

lego
Messages : 35
Inscription : 04 oct. 2011 0:06
Contact :

Re: TP05 : peut on faire tous les tests avec ant

Message par lego » 28 nov. 2012 22:08

Hello bobw,

Merci, en suivant dans les grandes lignes ta procédure, le bind des services est ok.

- fichier security.policy dans le répertoire Yaps
- Dans un terminal, dans le répertoire Yaps: export CLASSPATH=./classes/production:./classes/test (je prends les class generés par ant...) et rmiregistry
- Dans eclipse, fichier RegisterServices.java, click droit Run as -> Run Configurations -> new Java Application -> onglet Arguments et dans le text field VM argument ajout de: "-Djava.security.policy=xxxx/SourcesFournis_TP05/Yaps/security.policy" puis Apply et Run (ouf un bind enfin...)
Pour le reste j'ai suivie ta procédure ...

Merci.
A+

bobw
Messages : 50
Inscription : 02 nov. 2012 19:48

Re: TP05 : peut on faire tous les tests avec ant

Message par bobw » 28 nov. 2012 22:54

Ok,

Merci Lego pour ton retour.

A++

Répondre