Запустіть модульні тести в IntelliJ IDEA з декількох модулів разом


85

Як я можу запустити всі тести з двох або більше модулів IDEA одночасно?

Я використовую багато модулів, і важливо часто запускати всі модульні тести, і коли я вибираю більше однієї папки для запуску, у контекстному меню більше немає опції "запустити".

Відповіді:


113

Найкращий спосіб: (редагувати через 3 роки)

Існує навіть кращий спосіб цього досягти.

  1. Виберіть меню «Виконати» → «Редагувати конфігурації ...». Клацніть зелений плюс у верхньому лівому куті та виберіть JUnit.

  2. Виберіть "Тестовий вид" до "Шаблон" і введіть цей регулярний вираз точно так, як ви бачите: ^(?!.*IT$).*$(він починається з символу каретки, ^а закінчується доларом $). У цьому регулярному виразі сказано: усі тести, які не закінчуються ІТ на своє ім’я .

  3. Виберіть "Пошук тестів" до "У цілому проекті". Робочий каталог повинен бути встановлений як верхній робочий каталог модуля (він повинен бути встановлений за замовчуванням).

  4. Введіть назву для вашого тесту, наприклад "Усі модульні тести". Я також бажаю позначити параметр "Поділитися", щоб ця конфігурація не зникала пізніше. Клацніть Застосувати та ОК.

Ви можете експериментувати з цим регулярним виразом відповідно до ваших потреб.

Оригінальна відповідь:

Це можливо, хоча це не зручно.

  1. Виберіть перший модуль, клацніть правою кнопкою миші на test/javaкаталозі та "Запустити всі тести". Це створює тестову конфігурацію.
  2. Виберіть "Редагувати конфігурації" та встановіть прапорець "Спільний доступ" у нещодавно створеній конфігурації, щоб вона була збережена.
  3. Виберіть другий модуль, "Запустити всі тести" на ньому, і поставте прапорець "Поділитися" також у цій конфігурації.
  4. У розділі "Перед запуском" натисніть "+" і виберіть "Запустити іншу конфігурацію", а потім виберіть конфігурацію першого модуля.

Таким чином ви запускаєте конфігурації в послідовності, і кожна конфігурація отримує нову вкладку. Все-таки краще, ніж нічого.


Дякую! На сьогоднішній день найчистіший спосіб. Цікаво, чи є якийсь кращий спосіб досягти цього через 3 роки :)
CoderSpinoza

Дякую! Ви заощадили мій час, і це, безумовно, все ще найрозумніший спосіб, який я можу знайти, щоб вирішити як створення кількох звітів про покриття, так і уніфіковану проблему запуску справи за один постріл .
Fei

Я щойно відредагував свій anser з кращим рішенням @CoderSpinoza
Tomasz Kalkosiński

10
Оновлена ​​версія не настільки хороша , якщо ваші тестові випадки використовують ресурси, специфічні для модуля, під час її роботи - я все одно віддаю перевагу оригінальному рішенню.
Фей

Як отримати цю конфігурацію, щоб поважати мої залежності Gradle? Зараз це не вдається через відсутні класи з Гуави. При запуску тестів одного модуля він працює нормально.
Йорн

22

Вам потрібно створити "Конфігурацію запуску":

  1. Перейдіть до спадного меню вгорі, праворуч від кнопки "Зробити" та натисніть на нього
  2. Виберіть "Редагувати конфігурації"
  3. Тепер натисніть кнопку "+", щоб додати нову конфігурацію запуску та виберіть JUnit
  4. Потім, під час налаштування "Запустити конфігурацію", ви знайдете спадне меню "Test Kind", виберіть "Усі класи в каталозі"
  5. Виберіть каталог, який ви хочете використовувати як кореневий, ви можете вибрати каталог верхнього рівня для вашого проекту або будь-який каталог для ваших модулів.
  6. Виберіть модуль IntelliJ, звідки вибираєте шлях до класу (якщо це шлях до класу, це може бути проект верхнього рівня)

Дякуємо за підказку, хоча це не вирішує проблему. Ідеальним способом буде вибрати кілька паперів, а не тільки один. Постійним рішенням є використання шаблонів, але все-таки може бути лише шаблон пакунка, а не
папки

15
У розділі "Тестовий вид" виберіть "Все в упаковці", а потім встановіть прапорець "У цілому проекті". Це буде запускати тести у всіх модулях.
Мартін Оделіус

5
Я хотів би, щоб кожен модуль працював зі своїм власним директорією модуля як робочим каталогом - це, здається, неможливо, схоже, використовує єдиний каталог модуля для всього цього.
bacar

@MartinOdhelius це найчистіше рішення на сьогодні
Хеміль,

10

Виділіть усі модулі, клацніть правою кнопкою миші та оберіть запуск усіх тестів. Це створить конфігурацію під назвою "Весь проект", яку ви зможете запустити знову будь-коли.

Я знайшов це краще, ніж прийнята відповідь, оскільки це запускає модульні тести окремо для кожного модуля. Якщо ваші тестові кейси використовують ресурси, специфічні для модулів, під час роботи, найкращий спосіб прийнятої відповіді не буде працювати.

Виберіть усі модулі

Виберіть усі модулі

Клацніть правою кнопкою миші та виберіть запуск усіх тестів

Клацніть правою кнопкою миші та виберіть запуск усіх тестів

Отримайте нову конфігурацію запуску

Отримайте нову конфігурацію запуску


Досить вибрати більше одного модуля на першому кроці.
user7610

2
На мій погляд, це має бути прийнятою відповіддю. Єдине застереження, яке я маю, - це використання терміна "найпростіший". На жаль, у запуску конфігурацій з Intellij немає нічого простого. Існує багато способів виконувати прості завдання з конфігураціями, і зазвичай це лише один, якщо він працює. Тому ваше завдання часто полягає в перегляді всіх різних варіантів у пошуках того, який працює. Зовсім непросто.
Девід Сакштейн,

Це запускає всі тести в проекті (Весь проект), хоча я вибираю невелику частку модулів. Це не те, що я хочу. У моєму випадку всі модулі, я хочу запускати тести для спільного використання спільного пакету, тому я можу редагувати отриману конфігурацію "Весь проект" і додати пакет, який фільтрує для запуску тесту лише для підмножини модулів.
Альберт Віла Кальво

5

Для мене обидва рішення не працювали або не працювали, як очікувалося.

Для мене у мене є 3 модулі. Залежності моїх модулів виглядають так

Презентація -> Домен -> Дані

Я просто хотів виконати всі тести разом. Тож я придумав підхід „Через залежності модулів”

Мої налаштування виглядають так:

введіть тут опис зображення


2

Це працювало для мене для проекту з декількома модулями.

Створіть нову конфігурацію запуску / налагодження JUnit. Вид тесту: «Все в пакеті» Пошук тестів: «Весь проект»

Вам також доведеться вказати робочий каталог.


Це те, що в підсумку я теж зробив.
miva2

1

Інший не настільки очевидний випадок - це коли кодове охоплення потрібно більше ніж для одного проекту. Наївним рішенням буде вибір декількох проектів і запуск у них усіх модульних тестів одночасно. Як виявляється, модульні тести можуть провалитися, якщо шлях до класу зміниться, і IntelliJ має рівно один запис шляху до класу за конфігурацію запуску. У цьому випадку насправді достатньо послідовного запуску модульних тестів на проектах. Це тому, що наприкінці кожного запуску IntelliJ (2017.2.5 Community Edition) запитує, чи має зібране покриття замінювати або додавати до раніше зібраної статистики покриття.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.