108 votes

Exécuter des tests unitaires dans IntelliJ IDEA à partir de plusieurs modules ensemble

Comment puis-je exécuter tous les tests de deux ou plusieurs modules IDEA en même temps ?

J'utilise de nombreux modules et il est important d'exécuter souvent tous les tests unitaires. Lorsque je choisis plus d'un dossier à exécuter, il n'y a plus d'option "exécuter" dans le menu contextuel.

139voto

T Mai Points 41

Le meilleur moyen : (modifier après 3 ans)

Il existe même un meilleur moyen d'y parvenir. De la Documentation sur la configuration d'exécution de JUnit de JetBrains :

  1. Sélectionnez le menu "Exécuter" → "Modifier les configurations...". Cliquez sur le plus vert dans le coin supérieur gauche et sélectionnez JUnit.

  2. Sélectionnez "Test kind" à "Pattern" et entrez cette regexp exactement comme vous la voyez : ^(?!.*IT$).*$ (il commence avec caret ^ et se termine par le dollar $ ). Cette regexp dit : tous les tests qui ne se terminent pas par IT dans leur nom .

    Note : L'expression rationnelle correspondra aux noms de fichiers qualifiés, ce qui permettra d'exclure facilement les modules et les paquets. Si vos tests d'intégration sont regroupés dans un paquet com.me.integrationtests le regex qui correspondrait à tout ce qui n'est pas dans ce paquet serait le suivant ^(?!.*com\.me\.integrationtests.*).*$ .

  3. Sélectionnez "Recherche de tests" à "Dans tout le projet". Le répertoire de travail doit être défini comme le répertoire de travail du module supérieur (il doit être défini par défaut).

  4. Entrez un nom pour votre test comme "All Unit tests". Je préfère également cocher l'option "Partager" afin que cette configuration ne disparaisse pas plus tard. Cliquez sur Appliquer et OK.

Vous pouvez expérimenter avec cette regexp pour l'adapter à vos besoins.

Réponse originale :

C'est faisable, même si ce n'est pas confortable.

  1. Sélectionnez le premier module, cliquez avec le bouton droit de la souris sur test/java et "Run All Tests". Cela crée une configuration de test.
  2. Sélectionnez "Editer les configurations" et cochez "Partager" sur la configuration nouvellement créée afin qu'elle soit enregistrée.
  3. Sélectionnez le deuxième module, "Exécuter tous les tests" sur celui-ci, et cochez "Partager" sur cette configuration également.
  4. Dans la section "Avant le lancement", cliquez sur "+" et sélectionnez "Exécuter une autre configuration", puis sélectionnez la configuration du premier module.

De cette façon, vous exécutez les configurations dans une séquence et chaque configuration reçoit un nouvel onglet. C'est toujours mieux que rien.

32voto

Dave Thomas Points 2098

Sélectionnez tous les modules, faites un clic droit et choisissez d'exécuter tous les tests. Cela créera une configuration appelée "Tout le projet" que vous pouvez relancer à tout moment.

J'ai trouvé cette réponse meilleure que la réponse acceptée car elle exécute les tests unitaires séparément pour chaque module. Si vos scénarios de test utilisent des ressources spécifiques à un module pendant leur exécution, alors la meilleure solution de la réponse acceptée ne fonctionnera pas.

Sélectionnez tous les modules

Select all modules

Cliquez à droite et choisissez d'exécuter tous les tests

Right click and choose to run all tests

Obtenir une nouvelle configuration d'exécution

Get a new run configuration

23voto

Alonso Dominguez Points 3292

Vous devez créer une "configuration d'exécution" :

  1. Allez dans le menu déroulant en haut, à droite du bouton "Faire" et cliquez dessus.
  2. Sélectionnez "Modifier les configurations".
  3. Cliquez maintenant sur le bouton "+" pour ajouter une nouvelle configuration d'exécution et sélectionnez JUnit.
  4. Ensuite, lorsque vous configurez la "Configuration d'exécution", vous trouverez une liste déroulante "Type de test", sélectionnez "Toutes les classes du répertoire".
  5. Sélectionnez le répertoire que vous souhaitez utiliser comme racine, vous pouvez choisir le répertoire de premier niveau de votre projet ou n'importe lequel des répertoires de vos modules.
  6. Sélectionnez le module IntelliJ à partir duquel vous récupérez le classpath (il peut s'agir du projet de premier niveau s'il possède un classpath).

5voto

jan1337z Points 2088

Pour moi, les deux solutions n'ont pas fonctionné ou n'ont pas fonctionné comme prévu.

Pour moi, j'ai 3 modules. Les dépendances de mes modules ressemblent à ceci

Présentation -> Domaine -> Données

Je voulais juste exécuter tous les tests ensemble. J'ai donc adopté l'approche "Across module dependencies".

Mes paramètres ressemblent à ceci :

enter image description here

3voto

Dan Points 1593

Cela a fonctionné pour moi pour un projet avec plusieurs modules.

Créez une nouvelle configuration d'exécution/débogage de JUnit. Type de test : "All in package Recherche de tests : "Tout le projet".

Vous devrez également spécifier un répertoire de travail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X