将 maven-surefire-plugin 从 2.19.1 升级到 2.22.1 会导致测试不 运行

Upgrading maven-surefire-plugin from 2.19.1 to 2.22.1 causes tests to not run

我使用老式引擎和 maven-surefire-plugin 版本 2.19.1 使用 JUnit Jupiter (JUnit 5) 运行 进行了 JUnit 4 测试。

[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ jon-snow ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-surefire-plugin:2.19.1:test (unit-tests) @ jon-snow ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.whatever.WhateverTest
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0 ...

当我将 maven-surefire-plugin 版本升级到 2.22.1 时,没有检测到任何测试。

[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ jon-snow ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-surefire-plugin:2.22.1:test (unit-tests) @ jon-snow ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

这是为什么?我有 248 个测试应该 运行。我需要添加哪些依赖项或配置更改才能使测试再次运行?

与@Marvin 所说的类似,您需要确保相应地更新您的 jupiter 引擎插件版本。此外,如果您使用的是较旧的 jUnit 版本,请为其使用更新的依赖项。 下面提供了每个小样本。

   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${maven-surefire-plugin.version}</version>
    <dependencies>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.5.2</version>
      </dependency>
    </dependencies>
    ...
   </plugin>

如果您使用的是较旧的 jUnit 依赖项,请包含此依赖项

   <dependency>
     <groupId>org.junit.vintage</groupId>
     <artifactId>junit-vintage-engine</artifactId>
     <version>5.5.2</version>
   </dependency>

在上面的示例中,我们使用的是 maven-surefire-plugin 版本 2.22.2