Опция «Тег (JUnit 5)» не отображается в IntelliJ 2018.3 - PullRequest
0 голосов
/ 02 января 2019

Я работаю с JUnit 5.1.0 в проекте Maven.У меня есть IntelliJ IDEA 2018.3.2 (Community Edition).Я хотел бы использовать аннотацию @Tag для описания моих тестов и возможности фильтровать их.

Дело в том, что при редактировании конфигураций |Конфигурация |Test Kind нет опции «Tag (JUnit 5)», как я видел во многих примерах.Предоставляется только опция «Теги».

Когда я использую упомянутую опцию, я устанавливаю для поля «Выражение тега» значение «slow» (без кавычек) (один тест уже помечен как @Tag («slow»)).

Дело в том, что тест не найден (тест помечен @Test).

@Test
@Tag("slow")
public void testNotBlank() {
  // Given
  String excectedText = "";
  // When
  String text = Checks.notBlank(excectedText, "error");
  // Then
  assertEquals("", Checks.notBlank(text, "error"));
}

Зависимость pom

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-engine</artifactId>
  <version>5.1.0</version>
  <scope>test</scope>
</dependency>

Прежде всего, я ожидал, что у меня будет опция "Теги (JUnit 5)", а у меня нет.Затем я ожидал, что при выборе «Теги» и выражении «медленно» будет выполнен тест testNotBlank.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Причина, по которой он не работает, заключается в том, что я использовал аннотацию @Test из JUnit 4 вместо того, чтобы использовать аннотацию из JUnit 5. Из-за этого фильтрация не работала, даже если JUnit Vintage был импортирован в pom.

0 голосов
/ 02 января 2019

Вы можете выполнить помеченные тесты, используя следующую конфигурацию теста:

enter image description here

Это может быть создано с помощью следующих шагов:

  1. Запуск / отладка конфигураций> Добавить новую конфигурацию> Junit
  2. Выберите тип теста Tags и различные конфигурации для того, как вы хотите выполнить. например Я выполняю тест, помеченный как «быстрый» N раз.

Где тестовый класс включает в себя:

public class TaggedTests {

    @Test
    @Tag(value = "slow")
    public void sample() {
        System.out.println("slow-test");
    }


    @Test
    @Tag(value = "fast")
    public void fastSample() {
        System.out.println("fast-test");
    }
}

и результаты выполнения:

fast-test 
fast-test... 10 times
...