项目场景:
使用@SpringBootTest进行单元测试。
问题描述
启动直接报错:
java.lang.NoClassDefFoundError: org/springframework/test/context/TestContextAnnotationUtils
Caused by: java.lang.ClassNotFoundException: org.springframework.test.context.TestContextAnnotationUtils
原因分析:
这是由于 spring-boot-test 和 spring-test 的版本没有匹配上
由于代码验收,我这边使用的是第三方提供的框架,然后将自己的依赖等加入,但是加入maven中将springtest的版本用了自己的版本和第三方的不同
我自己的<spring-framework.version>5.2.13.RELEASE</spring-framework.version> 对应的springboot是<spring-boot.version>2.3.9.RELEASE</spring-boot.version>
但是第三方的springboot是<spring-boot.version>2.6.11</spring-boot.version>使用的
<spring-framework.version>5.3.22</spring-framework.version>
我将手动添加的spring-framework.version改成5.3.22就可以了
同时为了让给典发那个能扫到测试类,还需要加上springboottest注解
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MatchRuleEnumTest.class)
引入的包是
import org.junit.Test;
import org.junit.runner.RunWith;
如果使用import org.junit.jupiter.api.Test;这个包,那不能加springboottest注解,他们扫不到```
问题2
```java
java.lang.Exception: Method matchTest should have no parameters
```java
在这里插入代码片
原因是我测试代码中加了参数,这是不被允许的
matchTest(string context )
去掉参数ok
暂时更新这,后续补充