删除'junit-platform-surefire-provider'后,通过 Junit5 中的@Tag注释执行测试将不起作用



我经常在测试中使用@Tag注释,因为从终端运行完全标记的测试很容易。

例如:

@Tag("api_t1")
@Test
public void api_Test() {
someTest_Here();

然后我可以通过命令从终端运行这些测试:

mvn test -Dtag=api_t1

但我已经开始在控制台中看到警告:

| WARNING:                                                                      |
| The junit-platform-surefire-provider has been deprecated and is scheduled to  |
| be removed in JUnit Platform 1.4. Please use the built-in support in Maven    |
| Surefire >= 2.22.0 instead.                                                   |
| » https://junit.org/junit5/docs/current/user-guide/#running-tests-build-maven |

好的,我决定按照这个手册,并开始更改我的pom.xml:

  1. 将版本从1.3.0更改为1.4.0

    org.unit.platformjunit平台surefire提供商1.3.0

结果:通过标记运行测试不起作用,将从项目运行所有测试

mvn test -Dtag=api_t1
  1. 删除了此依赖项

结果:通过标记运行测试不起作用,将从项目运行所有测试

mvn test -Dtag=api_t1

所以,我的问题是,是否有可能在控制台中看不到这个警告消息,或者我不应该在pom.xml中触摸我的插件版本?或者还有另一个解决方案,我无法从Junit 5用户指南中获得

关于此处的示例https://github.com/junit-team/junit5-samples/tree/master/junit5-migration-maven我找到了解决方案:

应使用

<groups>${tag}</groups>

代替

<includeTags>${tag}</includeTags>

最新更新