TP02 : erreurs TP02.html

Modérateurs : graffiop, jmdouin, agoncal, mlebihan

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

TP02 : erreurs TP02.html

Message par cpoisson » 28 oct. 2007 15:22

Bonjour,

Eclipse exécute les tests du TP sans problème.
Aucune erreur également n'est retournée par la commande "ant yaps-test" :

Code : Tout sélectionner

Buildfile: build.xml

check:

yaps-prepare:
     [echo] Setup the Yaps environment

yaps-compile:
     [echo] Compile the YAPS classes
     [echo] Compile the YAPS test classes

yaps-test:
     [echo] Tests the application
    [junit] Running AllTests
    [junit] Testsuite: AllTests
    [junit] Tests run: 35, Failures: 0, Errors: 0, Time elapsed: 0,125 sec
    [junit] Tests run: 35, Failures: 0, Errors: 0, Time elapsed: 0,125 sec
    [junit]
    [junit] Testcase: testCreateValidCustomer took 0 sec
    [junit] Testcase: testCreateCustomerWithInvalidValues took 0 sec
    [junit] Testcase: testDomainFindCustomerWithInvalidValues took 0 sec
    [junit] Testcase: testDomainCreateCustomer took 0 sec
    [junit] Testcase: testDomainCreateCustomerWithInvalidValues took 0 sec
    [junit] Testcase: testDomainUpdateUnknownCustomer took 0 sec
    [junit] Testcase: testDomainUpdateCustomerWithInvalidValues took 0 sec
    [junit] Testcase: testDomainUpdateCustomer took 0 sec
    [junit] Testcase: testDomainDeleteUnknownCustomer took 0 sec
    [junit] Testcase: testDomainFindCategoryWithInvalidValues took 0 sec
    [junit] Testcase: testDomainFindAllCategories took 0 sec
    [junit] Testcase: testDomainCreateCategory took 0 sec
    [junit] Testcase: testDomainCreateCategoryWithInvalidValues took 0 sec
    [junit] Testcase: testDomainUpdateUnknownCategory took 0 sec
    [junit] Testcase: testDomainUpdateCategoryWithInvalidValues took 0,015 sec
    [junit] Testcase: testDomainUpdateCategory took 0 sec
    [junit] Testcase: testDomainDeleteUnknownCategory took 0 sec
    [junit] Testcase: testDomainFindProductWithInvalidValues took 0 sec
    [junit] Testcase: testDomainFindAllProducts took 0 sec
    [junit] Testcase: testDomainCreateProduct took 0 sec
    [junit] Testcase: testDomainCreateProductWithInvalidValues took 0 sec
    [junit] Testcase: testDomainCreateProductWithInvalidCategory took 0 sec
    [junit] Testcase: testDomainUpdateUnknownProduct took 0 sec
    [junit] Testcase: testDomainUpdateProductWithInvalidValues took 0 sec
    [junit] Testcase: testDomainUpdateProduct took 0 sec
    [junit] Testcase: testDomainDeleteUnknownProduct took 0 sec
    [junit] Testcase: testDomainFindItemWithInvalidValues took 0 sec
    [junit] Testcase: testDomainFindAllItems took 0 sec
    [junit] Testcase: testDomainCreateItem took 0,015 sec
    [junit] Testcase: testDomainCreateItemWithInvalidValues took 0 sec
    [junit] Testcase: testDomainCreateItemWithInvalidProduct took 0 sec
    [junit] Testcase: testDomainUpdateUnknownItem took 0,016 sec
    [junit] Testcase: testDomainUpdateItemWithInvalidValues took 0 sec
    [junit] Testcase: testDomainUpdateItem took 0,016 sec
    [junit] Testcase: testDomainDeleteUnknownItem took 0 sec

BUILD SUCCESSFUL
Total time: 1 second
Toutefois, le fichier TP02.html me signale les erreurs suivantes :

Code : Tout sélectionner

testDomainUpdateItem(F): Votre exécutable a échoué en levant une exception.

Exception levée: java.lang.NoSuchMethodError

Message : com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

Pile d'appel:
java.lang.NoSuchMethodError: com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V
(...)

testDomainUpdateItem(F): com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

testDomainUpdateItemWithInvalidValues(F): Votre exécutable a échoué en levant une exception.

Exception levée: java.lang.NoSuchMethodError

Message : com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

Pile d'appel:
java.lang.NoSuchMethodError: com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V
(...)

testDomainUpdateItemWithInvalidValues(F): com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

testDomainCreateItemWithInvalidValues(F): Votre exécutable a échoué en levant une exception.

Exception levée: java.lang.NoSuchMethodError

Message : com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

Pile d'appel:
java.lang.NoSuchMethodError: com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V
(...)

testDomainCreateItemWithInvalidValues(F): com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

testDomainCreateItemWithInvalidProduct(F): Votre exécutable a échoué en levant une exception.

Exception levée: java.lang.NoSuchMethodError

Message : com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

Pile d'appel:
java.lang.NoSuchMethodError: com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V
(...)

testDomainCreateItemWithInvalidProduct(F): com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

testDomainFindAllItems(F): Votre exécutable a échoué en levant une exception.

Exception levée: java.lang.NoSuchMethodError

Message : com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

Pile d'appel:
java.lang.NoSuchMethodError: com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V
(...)

testDomainFindAllItems(F): com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

testDomainCreateItem(F): Votre exécutable a échoué en levant une exception.

Exception levée: java.lang.NoSuchMethodError

Message : com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V

Pile d'appel:
java.lang.NoSuchMethodError: com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V
(...)

testDomainCreateItem(F): com.yaps.petstore.domain.Item.(Ljava/lang/String;Ljava/lang/String;DLcom/yaps/petstore/domain/Product;)V
Pourquoi est notée l'absence de la méthode Item(String,String,Product) ? En l'ajoutant, rien n'y fait !

Quelqu'un a une idée ou a rencontré le même problème ?

mlebihan
Messages : 114
Inscription : 09 févr. 2007 1:03

Message par mlebihan » 28 oct. 2007 20:09

Bonsoir,

Le constructeur incriminé de la classe Item, est-il bien public?


M. Le Bihan.

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

Constructeur Item

Message par cpoisson » 28 oct. 2007 20:46

Bonsoir,

Le constructeur est bien public :

Code : Tout sélectionner

public Item(String id, String name, Number unitCost, Product product) throws CheckException {
	_id = id;
	_name = name;
	_unitCost = unitCost.doubleValue();
	_product = product;
	checkData();
	product.addItem(this);
}

mlebihan
Messages : 114
Inscription : 09 févr. 2007 1:03

Message par mlebihan » 28 oct. 2007 21:20

Le constructeur attendu n'est-il pas plutôt celui-ci?

public Item(String szId, String szNom, double dPrix, Product produit)

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

Classes de test

Message par cpoisson » 28 oct. 2007 21:37

Effectivement, j'ai testé avec un constructeur prenant comme troisième paramètre un "Double". Mais, certaines méthodes de test envoient un entier pour le montant de l'article.

Avec deux constructeurs (l'un pour traiter les "Double", l'autre pour les "Integer"), le fichier TP02.html affiche les mêmes messages d'erreur...

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

Message par cpoisson » 29 oct. 2007 0:28

Avec deux constructeurs qui gèrent les réels et les entiers, la commande "ant yaps-test" demande désormais un constructeur avec "Number" comme type du montant de l'article :

Code : Tout sélectionner

   [junit] Testcase: testDomainFindAllItems took 0,016 sec
    [junit]     Caused an ERROR
    [junit] com.yaps.petstore.domain.Item.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Lcom/yaps/petstore/domain/P
roduct;)V
    [junit] java.lang.NoSuchMethodError: com.yaps.petstore.domain.Item.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Numbe
r;Lcom/yaps/petstore/domain/Product;)V
    [junit]     at com.yaps.petstore.domain.ItemDAOTest.createItem(Unknown Source)
    [junit]     at com.yaps.petstore.domain.ItemDAOTest.testDomainFindAllItems(Unknown Source)
    [junit]
Je suis perdu...

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

Message par cpoisson » 29 oct. 2007 20:11

Après avoir vérifié mes variables d'environnement, après avoir relu le code, rien n'y fait. La situation est toujours la même :
- le programme fonctionne,
- les tests fonctionnent sous Eclipse,
- les tests fonctionnent en ligne de commande "ant",
- le fichier "TP02.html" et "TP02.test" affichent toujours des erreurs.

Quelqu'un qui a passé tous les tests unitaires peut me dire si son fichier "TP02.html" lui indique des erreurs ?

Merci à ceux qui pourront m'éclairer...

:?

beben92
Messages : 80
Inscription : 06 oct. 2006 21:02

Message par beben92 » 29 oct. 2007 23:14

Bonjour,

J'ai pour ma part passé tous les tests unitaires et le fichier TP02.html contient :

"Voici les tests qui ont posé des problèmes à votre exécutable. Cette liste est vide si tous se sont déroulés sans incident.

Tous les tests ont été passés avec succès."

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

Message par cpoisson » 29 oct. 2007 23:28

Merci pour ta réponse. :D

Tous les tests s'effectuent désormais avec succès. Mon fichier "TP02.test" ne retourne aucune erreur et le fichier "TP02.html" n'en affiche donc aucune.

Je suis parti avec un traitement du montant de l'article via des classes enveloppes alors que des types primitifs suffisent. Erreur bête !

Je n'explique toutefois toujours pas la trace précédemment affichée par Ant :

Code : Tout sélectionner

   [junit] Testcase: testDomainFindAllItems took 0,016 sec
    [junit]     Caused an ERROR
    [junit] com.yaps.petstore.domain.Item.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Number;Lcom/yaps/petstore/domain/P
roduct;)V 
A suivre...

Tomislav
Messages : 19
Inscription : 11 mai 2005 22:05

Message par Tomislav » 30 oct. 2007 1:19

Je ne suis pas sur d'avoir saisi la maniere dont tu as reglé le problème.
Il me semble que j'ai un cas semblable :

Code : Tout sélectionner

testDomainUpdateItem(F): Votre exécutable a échoué en levant une exception.

Exception levée: java.lang.NoSuchMethodError

Message : com.yaps.petstore.domain.Item.getProduct()Lcom/yaps/petstore/domain/Product;

Pile d'appel:
java.lang.NoSuchMethodError: com.yaps.petstore.domain.Item.getProduct()Lcom/yaps/petstore/domain/Product;
at F.b(Unknown Source)
at F.testDomainUpdateItem(Unknown Source)
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 junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at K.tester(Unknown Source)
at K.testerEtQuitter(Unknown Source)
at Tests.main(Unknown Source)

testDomainUpdateItem(F): com.yaps.petstore.domain.Item.getProduct()Lcom/yaps/petstore/domain/Product;
J'ai aussi la meme chose pour Product.getCategory()
Mes methodes get renvoient des Object...
En leur faisant renvors Product,... les tests échouent

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

Message par cpoisson » 30 oct. 2007 9:35

Quel est le contenu de ta méthode getProduct() ?

nathieb
Messages : 135
Inscription : 07 nov. 2006 18:08

Bonjour meme pb

Message par nathieb » 30 oct. 2007 15:34

Bonjour,
Quand vous trouvé une solution il serait bon de la partager.
J'ai le meme pb et à la lecture du post toujours pas de réponse.
public Object getProduct() {
// TODO Auto-generated method stub
return (Product)_product;
}

et j'ai les meme insultes ant yaps-test passe without trouble.


olivier

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

Message par cpoisson » 30 oct. 2007 16:09

Salut,

Je veux bien te donner une solution. Encore faut-il bien comprendre le problème et savoir si je peux y répondre...

As-tu essayé de retourner un type "Product" plutôt qu'un "Object" ? Ton attibut "_product" est bien de type "Product" ?

Code : Tout sélectionner

public Product getProduct(){
  return _product;
}
:wink:

nathieb
Messages : 135
Inscription : 07 nov. 2006 18:08

Bonjour,

Message par nathieb » 30 oct. 2007 16:18

Désolé pour l'énervement mais j'ai déjà essayé.
ce qui me fait ragé, c'est que sous eclipse c'est fini, quand tu t'apercois
quand ligne de commande il manque encore des choses , j'ai envie de ..
bref comprends plus rien, a force de bidouiller.

j'ai déjà essayer mais après j'ai d'autres erreurs.

olivier

cpoisson
Messages : 125
Inscription : 05 avr. 2006 9:24

Message par cpoisson » 30 oct. 2007 16:58

Peux-tu afficher le code de ta classe "Product" ?
Et/ou les erreurs retournées par ANT ?

Répondre