2011-06-12 2 views
2

Je voudrais accélérer les tests de junit et je pense à utiliser forkMode="once". En raison du fait que junit seems to use a shared classloader pour tous les tests dans un processus à côté de faux négatifs (ce qui est une bonne chose car il expose le couplage statique) il pourrait y avoir aussi des faux positifs pour la même raison.junit: comment éviter les faux positifs lors de l'utilisation de forkMode = "once"?

J'ai deux questions à ce sujet:

  1. Est-il en quelque sorte possible de modifier le comportement de classloader dans JUnit à appliquer une nouvelle classloader pour chaque test? Je pense qu'il serait idéal de pouvoir utiliser junit dans les deux mdoes pour éviter les faux positifs et les négatifs.

  2. Est-il facilement possible de randomize de commande de test pour diminuer la probabilité de faux positifs (en utilisant ant) ​​

Répondre

1

Pour autant que je sais ce que vous voulez est pas pris en charge, mais dans tous les cas, Je pense que vous devriez reconsidérer votre approche: vous devriez rendre votre code plus testable afin qu'il ne dépende pas d'un nouveau JVM/Classloader.

Mais si vous ne pouvez pas/ne voulez pas - votre meilleur plan d'action est de bifurquer.

+1

Vous avez raison, mon code ne devrait pas être lié à un nouveau jvm/classloader. C'est exactement ce que j'essaie d'archiver. Cependant, à cause de faux positifs je ne réalise peut-être pas que les tests sont liés et je vais avoir l'illusion que tout va bien - jusqu'à ce que la problématique teste individuellement (ou le client se plaint) – MRalwasser

+1

Vous devriez essayer de faire vos tests affirmer le point de départ de vos tests est correcte. – RonK

+0

RonK, je ne suis pas d'accord. C'est beaucoup de code répétitif pour chaque classe de test que vous écrivez (nous avons des centaines de tests hérités que nous n'allons pas réécrire). C'est quelque chose que le cadre pourrait/devrait faire pour vous. – JimN

Questions connexes