Как intelliJ может выполнить задачу gradle как тест


У меня есть проект gradle с заданиями" unit test "и" integration tests", определенными следующим образом:

test {
  include '**/*Test.class'
}

task integrationTest(type: Test) {
  include '**/*IT.class'
}

Я создал конфигурацию запуска в IntelliJ для запуска всех модульных тестов, как показано на рисунке:

Выполнить настройку задачи gradle 'test' в intelliJ

И сделал то же самое с задачей "integrationTest":

Выполнить настройку задачи gradle 'test' в intelliJ

IntelliJ "понимает" тестовое задание и запускает его, показывая графические результаты, как на этом рисунке:

IntelliJ показывает результаты выполнения тестового задания gradle

То же самое не происходит, когда он ведет integrationTest задача. Результаты отображаются в виде текста, например, когда я запускаю задачу с помощью командной строки.

1 2

1 ответ:

Отвечая на мой собственный вопрос... Насколько я знаю, вы не можете заставить IntelliJ выполнять тесты конкретной задачи, и решение шаблона не работает так хорошо.

Таким образом, единственный способ, который я нашел для эффективного разделения интеграционных тестов в IntelliJ, был с использованием категории JUnit.
  1. Создайте интерфейс для представления интеграционных тестов. Например:

    public interface IntegrationTest {
    }
    
  2. Вы должны аннотировать каждый класс интеграционного теста аннотацией категории и созданным интерфейс:

    import org.junit.experimental.categories.Category;
    import mycompany.mypackage.IntegrationTest;
    
    @Category(IntegrationTest.class)
    public class DbfFileProcessorIT {
        ...
    }
    
  3. Создание конфигурации сборки фильтрация с категорией: Введите описание изображения здесь