选项“Tag(JUnit 5)”在IntelliJ 2018.3中未显示。

4
我正在使用JUnit 5.1.0在Maven项目中工作。我有IntelliJ IDEA 2018.3.2(社区版)。我想使用@Tag注释来描述我的测试,并能够通过它们进行过滤。
问题在于,在编辑配置|配置|测试类型中,没有“Tag(JUnit 5)”选项,就像我在许多示例中看到的那样。只提供了“标签”选项。
当我使用该选项时,我将字段Tag expression设置为“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)"选项,但是没有。然后,我期望选择"标签"并给出"slow"表达式,测试testNotBlank会被执行。

我已经包含了正确的JUnit版本,但在IntelliJ IDEA社区版中仍未显示标签选项。 - Robert Ravikumar
3个回答

1
您可以使用以下测试配置执行标记测试:

enter image description here

这可以通过以下步骤创建:
  1. 运行/调试配置 > 添加新配置 > Junit
  2. 选择测试类型 标签 和各种配置,以确定您想要执行的方式。例如,我正在执行标记为“快速”的测试 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

0
原因是我使用了JUnit 4的@Test注释而不是JUnit 5的。因此,即使在pom中导入了JUnit Vintage,过滤也无法正常工作。

0

1)Intellij Junit Runner中的配置

Configuration in Intellij Junit Runner

请在突出显示的选择框中选择标签,并将您的标签添加到测试已标记的测试方法中。
2)使用maven pom.xml进行配置

enter image description here

在级别处添加上述配置,将您想要的标签放在组标签内,用逗号分隔,如图所示,有两个标签Add和Multiply。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接