Springboot版本从2.1.11.RELEASE
升级到2.4.3
之后发现执行 mvn test
找不到单元测试执行了。
之前了解过某个 2.x 版本后的spring-boot-test
默认使用Junit5
作为默认测试执行器,而现有代码中的测试使用的是Junit4
进行编写,怀疑是此原因造成。
在junit5
相关文档中找到了相关描述,意思是说,想要 maven-surefire-plugin
执行 Junit 的测试,在依赖中必须要声明一个TestEngine
的实现:
<!-- Junit5 配置实现 -->
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
</plugin>
</plugins>
</build>
<!-- ... -->
<dependencies>
<!-- ... -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<!-- ... -->
</dependencies>
同时也支持 Junit4 的测试用例,需要增加 Junit4 和 Junit Vintage依赖,可以同时执行 Junit4 和 Junit5 的测试用例
<!-- ... -->
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
</plugin>
</plugins>
</build>
<!-- ... -->
<dependencies>
<!-- ... -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<!-- ... -->
</dependencies>
<!-- ... -->
增加依赖后,再执行mvn test
测试用例的确可以正常运行了。