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

时间:2019-03-19 22:29:29

标签: junit maven-surefire-plugin junit5

我有使用老式引擎和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个应该运行的测试。我需要添加哪些依赖项或配置更改才能使测试再次起作用?

1 个答案:

答案 0 :(得分:1)

类似于@Marvin所说的那样,您将需要确保相应地更新了木星引擎插件的版本。另外,如果您使用的是较旧的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