web-dev-qa-db-fra.com

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

Comment puis-je exécuter tous les tests à partir de deux modules IDEA simultanément)?

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

74
Wojtek Erbetowski

Meilleur moyen: (modifier après 3 ans)

Il existe même un meilleur moyen d'y parvenir.

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

  2. Sélectionnez "Type de test" dans "Modèle" et entrez cette expression régulière exactement comme vous la voyez: ^(?!.*IT$).*$ (elle commence par le signe d'insertion ^ et se termine par dollar $). Cette expression régulière dit: tous les tests qui ne se terminent pas avec l'informatique en leur nom .

  3. Sélectionnez "Rechercher des tests" à "Dans l'ensemble du projet". Le répertoire de travail doit être défini sur 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 "Tous les tests unitaires". Je préfère également marquer l'option "Partager" afin que cette configuration ne disparaisse pas plus tard. Cliquez sur Appliquer et OK.

Vous pouvez expérimenter avec cette expression rationnelle pour répondre à vos besoins.

Réponse originale:

C'est faisable, bien que ce ne soit pas confortable.

  1. Sélectionnez le premier module, cliquez avec le bouton droit sur test/Java répertoire et "Exécuter tous les tests". Il crée une configuration de test.
  2. Sélectionnez "Modifier 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" 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 obtient un nouvel onglet. Encore mieux que rien.

94
Tomasz Kalkosiński

Vous devez créer une "Exécuter la configuration":

  1. Allez dans le menu déroulant en haut, à droite du bouton "Créer" et cliquez dessus
  2. Sélectionnez "Modifier les configurations"
  3. Maintenant, cliquez sur le bouton "+" pour ajouter une nouvelle configuration d'exécution et sélectionnez JUnit
  4. Ensuite, lors de la configuration de la "Run Configuration", vous trouverez une liste déroulante "Test Kind", sélectionnez "All classes in directory"
  5. Sélectionnez le répertoire que vous souhaitez utiliser comme racine, vous pouvez choisir le répertoire de niveau supérieur pour votre projet ou l'un des répertoires de vos modules.
  6. Sélectionnez le module IntelliJ d'où récupérer le chemin de classe (il peut s'agir du projet de niveau supérieur s'il a un chemin de classe)
20
Alonso Dominguez

Pour moi, les deux solutions n'ont pas fonctionné ou n'ont pas fonctionné es escomptées.

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

Présentation -> Domaine -> Données

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

Mes paramètres ressemblent à ceci:

enter image description here

5
Langusten Gustel

Le moyen le plus simple que j'ai trouvé était de sélectionner tous les modules, de cliquer dessus avec le bouton droit et de choisir d'exécuter tous les tests. Cela va créer une configuration appelée "Whole Project" que vous pouvez réexécuter à tout moment.

J'ai trouvé cela meilleur que la réponse acceptée car cela exécute les tests unitaires séparément pour chaque module. Si vos cas de test utilisent des ressources spécifiques au module pendant son exécution, la meilleure solution acceptée ne fonctionnera pas.

Sélectionnez tous les modules

Select all modules

Faites un clic droit et choisissez d'exécuter tous les tests

Right click and choose to run all tests

Obtenez une nouvelle configuration d'exécution

Get a new run configuration

4
Dave Thomas

Un autre cas moins évident est celui où la couverture du code est nécessaire sur plusieurs projets. La solution naïve serait de sélectionner plusieurs projets et d'exécuter tous les tests unitaires en même temps. En fait, les tests unitaires peuvent échouer si le chemin de classe change et IntelliJ a exactement une entrée de chemin de classe par configuration d'exécution. Dans ce cas, l'exécution séquentielle de tests unitaires sur des projets est en fait suffisante. En effet, à la fin de chaque exécution, IntelliJ (2017.2.5 Community Edition) demande si la couverture collectée doit remplacer ou doit être ajoutée aux statistiques de couverture précédemment collectées.

1
gabor

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

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

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

1
Dan