ОБНОВЛЕНО
Я попытался воспроизвести проблему и не смог.
Вот мой тестовый класс
package com.mytests.category;
import org.junit.Test;
import org.junit.experimental.categories.Category;
public class MyTest {
@Test
@Category(PerformanceTests.class)
public void testMethod1() {
System.out.println("method1");
}
@Test
@Category(RegressionTests.class)
public void testMethod2() {
System.out.println("method2");
}
}
Убедитесь, что у вас есть необходимые интерфейсы. В JUnit вам нужно создать маркерные интерфейсы для представления категорий:
package com.mytests.category;
public interface RegressionTests {}
и
package com.mytests.category;
public interface PerformanceTests {}
Затем в IntelliJ я запустил тесты один раз, и он автоматически создал для меня конфигурацию. Затем я редактирую конфигурацию
![Config Screenshot](https://i.stack.imgur.com/rITyV.png)
Результаты были ожидаемыми:
Только testMethod1
было выполнено.
СТАРЫЙ ОТВЕТ
Или из документа IntelliJ's (https://www.jetbrains.com/help/idea/run-debug-configuration-junit.html)
Категория Выберите эту опцию, если вы хотите запускать только тестовые классы и
методы испытаний, которые помечены либо с категорией, заданной с
@IncludeCategory
аннотация или подтип этой категории. Заполните следующие поля:
Категория Укажите нужную категорию. Введите название категории или нажмите
Кнопка обзора и выберите нужную категорию в открывшемся диалоговом окне.
Или Вы можете создать TestSuite
и указать (там), какие категории следует включить в комплект.
Что-то вроде
package org.mytests.category;
import org.junit.experimental.categories.Categories;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Categories.class)
@Categories.IncludeCategory(RegressionTests.class)
@Suite.SuiteClasses({ClassA.class, ClassB.class, ClassC.class})
public class RegressionTestSuite {
}