将 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
我使用老式引擎和 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