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

Как я могу запускать все тесты из двух или нескольких модулей IDEA сразу?

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

Ответ 1

Лучший способ: (редактировать через 3 года)

Существует даже лучший способ добиться этого.

  • Выберите меню "Выполнить" → "Редактировать конфигурации...". Нажмите зеленый плюс в левом верхнем углу и выберите JUnit.

  • Выберите "Test kind" в "Pattern" и введите это регулярное выражение точно так, как вы его видите: ^(?!.*IT$).*$ (начинается с каретки ^ и заканчивается долларом $). Это регулярное выражение говорит: все тесты, которые не заканчиваются с ИТ в их имени.

  • Выберите "Поиск тестов" в "В целом проекте". Рабочий каталог должен быть установлен в рабочий каталог верхнего модуля (он должен быть установлен по умолчанию).

  • Введите имя для своего теста, например "Все модульные тесты". Я также предпочитаю отмечать опцию "Поделиться", поэтому эта конфигурация не исчезнет позже. Нажмите "Применить" и "ОК".

Вы можете поэкспериментировать с этим регулярным выражением в соответствии с вашими потребностями.

Оригинальный ответ:

Это выполнимо, хотя это не удобно.

  • Выберите первый модуль, щелкните правой кнопкой мыши каталог test/java и "Запустите все тесты". Он создает тестовую конфигурацию.
  • Выберите "Редактировать конфигурации" и отметьте "Поделиться" на вновь созданной конфигурации, чтобы он был сохранен.
  • Выберите второй модуль, "Запустите все тесты" и проверьте "Share" в этой конфигурации.
  • В разделе "Перед запуском" нажмите "+" и выберите "Запустить другую конфигурацию", а затем выберите первую конфигурацию модуля.

Таким образом вы запускаете конфигурации в последовательности, и каждая конфигурация получает новую вкладку. Тем не менее, лучше, чем ничего.

Ответ 2

Вам нужно создать "Run Configuration":

  • Перейдите в раскрывающийся список вверху, справа от кнопки "Сделать" и нажмите на нее.
  • Выберите "Редактировать конфигурации"
  • Теперь нажмите кнопку "+", чтобы добавить новую конфигурацию запуска и выберите JUnit
  • Затем, когда вы настраиваете "Run Configuration", вы найдете раскрывающийся список "Test Kind", выберите "Все классы в каталоге"
  • Выберите каталог, который вы хотите использовать в качестве корня, вы можете выбрать каталог верхнего уровня для своего проекта или любой из каталогов для своих модулей.
  • Выберите модуль IntelliJ, из которого следует путь класса (он может быть проектом верхнего уровня, если он имеет путь к классам)

Ответ 3

Для меня оба решения не работали или не срабатывали.

Для меня у меня 3 модуля. Мои зависимости модулей выглядят так:

Презентация Домен Данные

Я просто хотел выполнить все тесты вместе. Поэтому я придумал подход "Зависимости от всех модулей"

Мои настройки выглядят следующим образом:

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

Ответ 4

Самым простым способом, который я нашел, было выбрать все модули, щелкнуть их правой кнопкой мыши и выбрать запуск всех тестов. Это создаст конфигурацию под названием "Весь проект", которую вы сможете запустить снова в любое время.

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

Выбрать все модули

Select all modules

Щелкните правой кнопкой мыши и выберите запуск всех тестов.

Right click and choose to run all tests

Получить новую конфигурацию запуска

Get a new run configuration

Ответ 5

Еще один не очень очевидный случай - когда требуется охват кода более чем для одного проекта. Наивным решением было бы выбрать несколько проектов и запустить в них все модульные тесты одновременно. Как выясняется, модульные тесты могут завершиться неудачей, если путь к классу изменится, а IntelliJ будет иметь только одну запись пути к классу на конфигурацию прогона. В этом случае последовательного запуска модульных тестов для проектов вполне достаточно. Это потому, что в конце каждого прогона IntelliJ (2017.2.5 Community Edition) спрашивает, должен ли собранный охват заменить или должен быть добавлен к ранее собранной статистике покрытия.

Ответ 6

Это сработало для меня в проекте с несколькими модулями.

Создайте новую конфигурацию запуска/отладки JUnit. Вид теста: "Все в пакете" Поиск тестов: "Весь проект"

Вам также нужно будет указать рабочий каталог.