默认 surefire 不使用 Spring Boot 执行测试
default surefire not executing the test with Spring Boot
我正在开发一个非常简单的 Spring Boot 2.4.2 项目,使用 BOM :
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
当 运行 mvn clean verify
时,我明白了:我们看到 Surefire 2.12.4
没有找到测试
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ api-testing ---
[INFO] Surefire report directory: C:\Users\vincent\IdeaProjects\api-testing\target\surefire-reports
------------------------------------------------------- T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
我不明白为什么..我尝试了几件事,即使不推荐,我也尝试通过在我的 pom 中添加它来覆盖版本:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
</plugins>
</build>
现在我的测试找到了!
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ api-testing ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running de.vincent.AssetReferentialServiceTest
我对这种 Spring 引导行为感到非常惊讶 - 我想我遗漏了什么..但是什么?
注意:我的测试是 Junit 5 测试,我的类路径中没有与 Junit 4 相关的 jar - 只有 Junit Jupiter 5.7.0 和 Junit 平台 1.7.0
谢谢
非常感谢@M。 Deinum 指出评论中的问题。
当然,使用 Spring Boot parent pom 对使用正确的插件版本有很大帮助!
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
</parent>
BOM 只会帮助依赖项,而不是构建插件。
我正在开发一个非常简单的 Spring Boot 2.4.2 项目,使用 BOM :
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
当 运行 mvn clean verify
时,我明白了:我们看到 Surefire 2.12.4
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ api-testing ---
[INFO] Surefire report directory: C:\Users\vincent\IdeaProjects\api-testing\target\surefire-reports
------------------------------------------------------- T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
我不明白为什么..我尝试了几件事,即使不推荐,我也尝试通过在我的 pom 中添加它来覆盖版本:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
</plugins>
</build>
现在我的测试找到了!
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ api-testing ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running de.vincent.AssetReferentialServiceTest
我对这种 Spring 引导行为感到非常惊讶 - 我想我遗漏了什么..但是什么?
注意:我的测试是 Junit 5 测试,我的类路径中没有与 Junit 4 相关的 jar - 只有 Junit Jupiter 5.7.0 和 Junit 平台 1.7.0
谢谢
非常感谢@M。 Deinum 指出评论中的问题。
当然,使用 Spring Boot parent pom 对使用正确的插件版本有很大帮助!
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
</parent>
BOM 只会帮助依赖项,而不是构建插件。