【问题标题】:How to use JUnit 5 @Tag with IntelliJ and Maven如何在 IntelliJ 和 Maven 中使用 JUnit 5 @Tag
【发布时间】:2017-08-06 03:19:59
【问题描述】:

我想使用 JUnit 5 中提供的@Tag 以便轻松过滤我的测试。

我在 2016 年 9 月的 this blog 输入中发现 IntelliJ 不支持 @Tag。不知道目前的状态是什么。

另外,我对使用 Maven 非常陌生,但我尝试修改 POM 文件以便在命令提示符中执行 mvn test 时过滤测试。没有运气。

【问题讨论】:

  • 究竟是什么不工作?你能提供错误或描述吗?也许添加你的 pom 文件的相关部分和你的测试示例(仅相关部分)

标签: java maven unit-testing intellij-idea junit5


【解决方案1】:

现在可以使用 Intellij IDEA 2018.1,查看此answer 了解详细信息(包括屏幕截图)。


另外,您可以在 JUnit 官方文档中查看 Build Support with Maven 以正确配置 maven-surefire-pluginFiltering by Tags 部分对于按标签过滤测试特别有用。

示例(排除所有带有“integration”标签的测试)

...
<build>
    <plugins>
        ...
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.21.0</version>
            <configuration>
                <properties>
                    <excludeTags>integration</excludeTags>
                </properties>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-surefire-provider</artifactId>
                    <version>1.2.0</version>
                </dependency>
                ...
            </dependencies>
        </plugin>
    </plugins>
</build>
...

【讨论】:

    【解决方案2】:

    这是我找到的解决方案:将 POM 文件中的 JUnit 版本从 ...

    <junit.jupiter.version>5.0.0-M2</junit.jupiter.version>
    <junit.vintage.version>4.12.0-M2</junit.vintage.version>
    <junit.platform.version>1.0.0-M2</junit.platform.version>
    

    <junit.jupiter.version>5.0.0-M3</junit.jupiter.version>
    <junit.vintage.version>4.12.0-M3</junit.vintage.version>
    <junit.platform.version>1.0.0-M3</junit.platform.version>
    

    允许 Maven 识别 @Tag。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 2019-04-30
      • 2016-11-29
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2018-10-15
      相关资源
      最近更新 更多