如果在使用SpringBoot进行单元测试时,使用Junit的@Test注解却出现了"No tests found with test runner 'JUnit 4'"的错误,则有可能是JUnit和SpringBoot版本不匹配所致。下面是解决方案的完整攻略。
确认版本
首先确认自己使用的JUnit和SpringBoot版本。在pom.xml文件中找到对应的依赖,例如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
以上依赖中,SpringBoot版本一般与spring-boot-starter-parent
的版本一致,可以在pom.xml文件中找到:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
而Junit版本则在junit:junit
依赖中。
确认版本后,可以查看官方文档或者网络资源来确定JUnit和SpringBoot版本之间是否存在不兼容的问题。
解决方案
一般情况下,解决方案分为两种:一种是升级JUnit版本,另一种是使用与当前版本兼容的SpringBoot版本。具体做法如下:
升级JUnit版本
JUnit 5更加兼容Spring 5及以上版本,因此可以尝试升级Junit版本。具体方法是在pom.xml文件中修改junit:junit
的版本:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
升级后,可以尝试使用JUnit 5的注解,例如@org.junit.jupiter.api.Test
。
使用与当前版本兼容的SpringBoot版本
如果升级JUnit版本无法解决问题,可以尝试换用与当前JUnit版本兼容的SpringBoot版本。具体做法是在pom.xml文件中修改org.springframework.boot:spring-boot-starter-test
的版本:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.4.6</version>
<scope>test</scope>
</dependency>
修改后,可以使用@org.junit.Test
注解进行单元测试。
示例
下面是两条示例说明:
示例1
假设当前使用的SpringBoot版本是2.5.1,而JUnit版本是4.13.2。在使用@Test
注解时出现了问题,错误信息为"No tests found with test runner 'JUnit 4'"。
为了解决问题,我们可以升级JUnit版本。在pom.xml文件中修改junit:junit
的版本:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
修改后,可以使用JUnit 5的注解进行单元测试,例如@org.junit.jupiter.api.Test
。
示例2
假设当前使用的JUnit版本是4.13.2,而SpringBoot版本是2.3.12.RELEASE。在使用@Test
注解时出现了问题,错误信息为"No tests found with test runner 'JUnit 4'"。
为了解决问题,我们可以换用与当前JUnit版本兼容的SpringBoot版本。在pom.xml文件中修改org.springframework.boot:spring-boot-starter-test
的版本:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.3.12.RELEASE</version>
<scope>test</scope>
</dependency>
修改后,可以使用@org.junit.Test
注解进行单元测试。
以上就是“SpringBoot单元测试使用@Test没有run方法的解决方案”的完整攻略,希望能对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot单元测试使用@Test没有run方法的解决方案 - Python技术站