web-dev-qa-db-fra.com

Est-il possible d'exécuter des tests JUnit à partir de plusieurs packages dans Eclipse?

Est-il possible d'exécuter des tests JUnit pour plusieurs packages en même temps sans créer manuellement de suites de tests.

Par exemple, si j'ai la hiérarchie:

code.branchone
code.branchone.aaa
code.branchone.bbb
code.branchtwo
code.branchtwo.aaa
code.branchtwo.bbb

Est-ce possible de:

  1. Exécutez tous les tests dans code.branchone et dans les packages descendants
  2. Exécutez tous les tests dans say code.branchone.aaa et code.branchtwo.bbb

Le problème que je vois avec la création manuelle de suites de tests est que lorsque de nouveaux tests arrivent, vous pouvez oublier de les ajouter.

50
will

Oui c'est possible. La façon la plus simple pour moi au moins est d'ajouter une classe de suite de tests. Cela peut ressembler à ceci:

package tests;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

import tests.message.ATest;
import tests.validator.BTest;
import tests.validator.CTest;
import tests.validator.DTest;

@RunWith(Suite.class)
@SuiteClasses({ ATest.class, 
        BTest.class, 
        CTest.class, 
        DTest.class })
public class AllTests {

}

Cela vous permettra de tester n'importe quelle classe que vous importez, quel que soit le package dans lequel il se trouve. Pour l'exécuter dans Eclipse, cliquez simplement avec le bouton droit sur la classe AllTests et exécutez-le en tant que test JUnit. Il exécutera ensuite tous les tests que vous définissez dans @SuiteClasses.

Cela fonctionnera également avec des sources liées, je l'utilise tout le temps.

25
span

Autrement:

Cliquez sur le triangle noir indiqué par un rectangle rouge dans l'image ci-dessous (dans votre Eclipse, pas ici :).)

enter image description here

Ensuite, ouvrez les configurations d'exécution, créez une nouvelle configuration, puis définissez "Exécuter tous les tests ..." comme illustré dans l'image ci-dessous.

enter image description here

19
jhegedus

Peut-être pas exactement quelle était la question d'origine, mais vous pouvez facilement exécuter tous les tests d'un Projet entier, en cliquant simplement avec le bouton droit sur le projet -> Exécuter en tant que JUnitTest. Ne vous inquiétez pas de l'emplacement des classes annotées, cela sera analysé.

Cela ne fonctionne pas s'il est appliqué au dossier test-src ou à un package avec des sous-packages. Dommage en fait -.-

13
icyerasor

Je suis sûr que vous pouvez modifier un peu cela. Créez une collection de la propriété CLASSES_DIR et bouclez-la dans la méthode findClasses. (junit4)

http://burtbeckwith.com/blog/?p=52

3
Jurgen Hannaert

Je crois que vous pouvez ajouter tous vos packages de test dans un seul répertoire. Si vous faites un clic droit sur ce répertoire, vous devriez trouver l'option "Exécuter en tant que -> Test JUnit" disponible. Cela exécutera tous les tests contenus dans le répertoire et interceptera tout ce que vous aurez ajouté. Tous les nouveaux tests sont mis en place avec les autres et quel que soit le nom du package que vous avez, cela n'a pas d'importance. J'espère que cela pourra aider

1
chillysapien

Bien sûr, cliquez avec le bouton droit sur les packages souhaités et sélectionnez Exécuter en tant que ... Test JUnit

1
Phil

Dans Eclipse, sur vos configurations de débogage/exécution, vous disposez des options suivantes:

  1. Exécutez un seul test
  2. Exécutez tous les tests dans le projet, le package ou le dossier source sélectionné

Je pense que la deuxième option est votre ami dans ce cas.

1
bruno conde