Gradle: несколько конфигураций для тестовых заданий - PullRequest
1 голос
/ 04 февраля 2020

В моем приложении есть два типа тестов:

  • Юнит-тесты (большое количество тестов и быстрое выполнение)
  • Интеграционные тесты (небольшое количество тестов но каждый набор занимает много времени)

Мой проект использует gradle, и я хочу, чтобы оба набора тестов выполнялись одновременно. Согласно документации Gradle , я могу использовать maxParallelForks config для распараллеливания выполнения. Однако, поскольку gradle распределяет задачи среди работников статистически (см. здесь ), есть вероятность, что все мои интеграционные тесты будут распределены одному и тому же работнику.

Итак, я действительно хочу иметь два набора test блоков в моем файле Gradle, например:

test {
    include 'org/unit/**'
    exclude 'org/integration/**'
    maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
}

test {
    include 'org/integration/**'
    exclude 'org/unit/**'
    maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
}

Поддерживает ли Gradle два разных профиля тестирования, как указано выше? Если да, могу ли я выполнить эти два параллельно?

1 Ответ

2 голосов
/ 04 февраля 2020

Я предполагаю, что все они находятся в одном наборе источников: src/main/java/test.

Я бы предложил создать отдельный набор источников и задачу специально для интеграционных тестов. См. Конфигурирование интеграционных тестов .

И поскольку вы хотите распараллелить выполнение, вам нужно будет создать пользовательскую задачу, которая будет отправлять как ваши модульные, так и интеграционные тесты в Worker API: https://guides.gradle.org/using-the-worker-api/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...