Question

Éclipse 3.7.2

Je viens de mettre en place un @Rule dans certains tests JUnit 4, mais quand je les exécute dans Eclipse, le MethodRule les méthodes ne sont pas appelées.C'est comme si le programme d'exécution du test Eclipse ne reconnaissait pas le @Rule implémentations et ne fait rien de spécial avec les champs annotés avec @Rule.

J'ai même essayé d'utiliser une MethodRule "Standard" comme org.junit.rules.TestName mais cela ne fonctionne pas correctement (les noms du test ne sont pas renseignés dans l'instance).Même l'exemple de test dans le JavaDoc de TestName échoue lorsqu'il est exécuté dans Eclipse.

Y a-t-il une astuce ?Eclipse ne prend-il tout simplement pas en charge JUnit Règles?

Était-ce utile?

La solution

Il s'avère que quelqu'un avait inclus un JAR apparemment "obligatoire" sur le chemin de classe d'exécution du projet en question.Ce JAR embarque, entre autres choses, les packages JUnit !Il y a donc ce JAR, nommé quelque chose d'anodin comme our_runtime_library.jar qui contient du code spécifique à l'application ainsi que des versions inconnues (mais anciennes) de JUnit, Spring et qui sait quoi d'autre.Lors de l'exécution du projet en tant que test unitaire, Eclipse récupérait le JUnit dans ce JAR au lieu de sa propre version (comme il se doit, les bibliothèques spécifiques au projet ont toujours la priorité), la version (Eclipse) sur laquelle le projet est construit.

Quel bordel;Maintenant, il faut déterminer qui mérite 50 coups de fouet pour celui-ci.

Autres conseils

Cela devrait fonctionner, au moins dans mon Eclipse (dans JUnit 4.8 intégré).Vous pourriez donc montrer votre code.

De plus, JavaDoc dit : Note that MethodRule is now deprecated, you should be using TestRule instead.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top