web-dev-qa-db-fra.com

Exécution d'un seul test JUnit dans Eclipse

Si j'ai une suite de tests avec plusieurs tests, lorsque j'essaie d'exécuter un seul test unitaire, soit depuis le menu contextuel de l'éditeur de code, soit depuis la vue JUnit, il semble insister pour toujours exécuter la suite entière, plutôt que le test unique. Existe-t-il un moyen de désactiver pour modifier ce comportement afin que je puisse demander d'exécuter cela, et seulement cela, test.

80
user14128

Dans le package Explorer, dépliez la classe. Il devrait vous montrer toutes les méthodes. Cliquez avec le bouton droit sur la méthode que vous souhaitez exécuter, puis sélectionnez Exécuter en tant que -> JUnit dans le menu contextuel (qui vient d'être testé avec Eclipse 3.4.1). La sélection de "Exécuter" sur une seule entrée dans la vue des résultats JUnit pour réexécuter un test fonctionne de la même manière.

93
ShiDoiSi

Le moyen le plus rapide que je connaisse:

  1. Presse Ctrl+Shift+ (déplace le curseur sur la déclaration de méthode actuelle),
  2. presse Alt+Shift+x (ou d pour le débogage) puis appuyez sur t (raccourci clavier pour "Exécuter le test JUnit"),
  3. vérifier le résultat du test,
  4. presse Alt+ pour revenir à la ligne de code que vous étiez auparavant.

Si vous souhaitez exécuter tous les tests, vous pouvez ignorer les étapes 1 et 4.

24
schnatterer

Dans Eclipse 3.5, vous pouvez contourner ce problème en remplaçant le lanceur de test par JUnit 3. Cela ne fonctionnera que pour les tests JUnit 3, pas les tests JUnit 4. Vous pouvez modifier le lanceur de test en procédant comme suit:

  1. Cliquez avec le bouton droit sur l'une des méthodes de test dans l'explorateur de contour
  2. Sélectionnez Exécuter en tant que -> Configurations d'exécution
  3. Dans l'onglet "Test", sélectionnez "Exécuter un seul test"
  4. Dans la liste déroulante Test Runner, sélectionnez 'JUnit 3'

Il peut également fonctionner dans d'autres versions.

13
lucrussell

Cela est possible dans Eclipse Indigo avec JUnit 4.8.2. Cliquez avec le bouton droit sur la méthode que vous souhaitez tester individuellement dans le volet Outline, puis sélectionnez Run As -> JUnit Test.

Vous pouvez même sélectivement cliquer avec le bouton droit sur un nom de méthode de test dans l'éditeur de source et sélectionner Run As -> Junit Test.

11
wulfgarpro

Ne pas utiliser Strg+F11 mais le raccourci clavier Alt+Shift+X -> T.
Ensuite, Eclipse exécutera le fichier ouvert actuel en tant que test JUnit. Le bouton de lecture vert exécutera uniquement la dernière configuration d'exécution choisie.

Pour moi, ça marche bien avec Alt+Shift+X -> T.

9
guerda

J'ajouterai aux autres en incluant un clavier hautement productif uniquement qui vous permet de déboguer un seul test unitaire (méthode).

Déplacez votre curseur sur le nom de la méthode en utilisant soit

  • Ctrl+Shift+Up ou
  • Ctrl+Shift+Down ou
  • Ctrl+o puis tapez le nom de la méthode

Une fois que votre curseur se trouve sur le nom de la méthode (ou juste avant):

  • Alt+Shift+D -> T (Déboguer)
  • Alt+Shift+X -> T (Courir)

Après avoir exécuté le test, vous pouvez revenir à l'endroit où se trouvait votre curseur en faisant:

Alt+Back

Vous obtenez presque REPL comme comportement par:

Ctrl+Shift+Up et Alt+Shift+X -> T et Alt+Back

Vous pouvez également définir rapidement un point d'arrêt:

Ctrl+Shift+B

9
Adam Gent

Faites un clic droit quelque part sur le nom de la méthode de test dans le fichier et sélectionnez "Exécuter" -> "Junit Test". Je le fais tout le temps avec Kepler et JUnit 4.

3
Kyle Dyer

J'ai eu le même problème que d'autres ont eu en utilisant Eclipse 3.4.1 et JUnit 4 test runner - impossible d'exécuter un seul test. Mais j'ai trouvé une suggestion ailleurs qui a résolu le problème. Ma classe de test continuait d'étendre junit.framework.TestCase. Lorsque j'ai arrêté d'étendre TestCase, tout a bien fonctionné et j'ai pu exécuter des tests JUnit uniques avec le lanceur de test JUnit 4. Bien sûr, j'avais besoin que JUnit 4 utilise des importations statiques pour les méthodes d'assertion, mais je l'avais déjà fait - je n'avais tout simplement pas supprimé l'héritage TestCase.

2
ghirschhorn

Si vous avez plusieurs tests dans plusieurs fichiers et que vous souhaitez exécuter uniquement les tests dans un fichier particulier, vous pouvez cliquer avec le bouton droit sur ce fichier et sélectionner exécuter en tant que -> test junit. Maintenant, si vous souhaitez exécuter un seul test, contenu dans un fichier contenant de nombreux tests, je suppose (je n'ai pas installé Eclipse ici) que la vue Structure répertorie toutes les méthodes de test d'un fichier, et vous pourrez probablement cliquez avec le bouton droit sur une seule méthode de test et exécutez-la en tant que test JUNit.

J'espère que ça aide.

1
Tom

En lisant certains des commentaires ici, il semble que vous pourriez être intéressé par l'exécution des tests du code que vous modifiez au fur et à mesure que vous le modifiez, sans perdre de vue le code sur lequel vous travaillez. Il existe un plugin Eclipse pour cela. Voir infinitest .

0
unigeek

Pour moi, cela ne fonctionne pas non plus dans Eclipse 3.4.2, même s'il fonctionnait dans les versions précédentes (j'ai essayé d'exécuter une méthode unique à partir de l'explorateur de packages et un test de junit unique à partir de la vue junit)

0
ttt

Je suis d'accord avec le point sur 3.4.2 qui ne fonctionne plus comme il le faisait dans les versions précédentes. Avant de pouvoir cliquer avec le bouton droit sur un seul test dans un groupe de tests à partir de la vue JUnit et exécuter uniquement ce test. Dans la dernière version, il insiste pour toujours les exécuter tous. Certes, la vue exécute le test sur lequel vous avez cliqué en premier et vide le reste dans un correctif appelé "Tests non racinés". Si quelqu'un comprend cela, j'aimerais savoir comment le contourner.

0
ra9r