项目场景:
使用Junit5进行单元测试
问题描述
参数化测试过程中,运行测试代码时,Junit
报错
测试源码:
@ParameterizedTest
@ValueSource(ints = { 1, 2, 3, 4 })
void testAbs(int x) {
assertEquals(x, Math.abs(x));
}
原因分析:
两个依赖的版本不一致,具体分析如下:
junit-jupiter-api
与jupiter-params
的版本必须一致- 高版本的
jupiter-params
到低版本的junit-jupiter-api
中去找新类,肯定是找不到的
附:错误配置
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
解决方案:
将版本设为一致:
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>