JUnit5 中缺少 org.junit.jupiter.params
Missing org.junit.jupiter.params from JUnit5
我正在尝试将参数化测试添加到我的 Java 程序中。我找到了 JUnit 5 的示例,我已经包含了这些示例。
https://blog.codefx.org/libraries/junit-5-parameterized-tests/
问题是我无法添加@ParameterizedTest,因为缺少命名空间。不知道为什么或如何。
documentation 页面清楚地表明它在 org.junit.jupiter.params 中,但我没有。
让您了解我的代码:
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.jupiter.api.Assertions.*;
class SubsetPrinterTest
{
// https://blog.codefx.org/libraries/junit-5-parameterized-tests/
static Collection<Object[]> makeSetData()
{
return Arrays.asList(new Object[][]
{
{1, new char[]{'1'}},
{2, new char[]{'1', '2'}},
{3, new char[]{'1', '2', '3'}},
{4, new char[]{'1', '2', '3', '4'}},
{5, new char[]{'1', '2', '3', '4', '5'}}
});
}
// This should be a parameterized test using the makeSetData.
@Test
void makeSet()
{
// Arrange
SubsetPrinter subsetPrinter = new SubsetPrinter();
// Act
char[] set = SubsetPrinter.MakeSet(5);
// Assert
assertArrayEquals(set, new char[]{'1', '2', '3', '4', '5'});
assertEquals(set.length, 5);
}
}
您的项目 class-path 必须包含 junit-jupiter-params-xxx.jar
的版本,例如 http://central.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.0.0/
中的 junit-jupiter-params-5.0.0.jar
codefx.org
你 link 的博客 post 说(编辑到当前 5.0.0 版本):
Getting started with parameterized tests is pretty easy but before the fun can begin you have to add the following dependency to your project:
Group ID: org.junit.jupiter
Artifact ID: junit-jupiter-params
Version: 5.0.0
要么手动下载并添加它,要么如果您使用的是具有依赖关系管理的构建工具(Gradle、Maven 等),请配置构建脚本(build.gradle、pom.xml, ...) 相应地。
在此处查找一些通用示例:https://github.com/junit-team/junit5-samples
从版本 5.4.0-M1 开始,JUnit Jupiter 提供了一个聚合器工件,它捆绑了所有可用的 Jupiter 定义工件以便于使用。有关详细信息,请参阅 https://sormuras.github.io/blog/2018-12-26-junit-jupiter-aggregator.html。
在pom.xml中添加如下依赖。 jupiter API [Junit 5] 将模块作为插件处理,每一个都必须有意添加,
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
我正在尝试将参数化测试添加到我的 Java 程序中。我找到了 JUnit 5 的示例,我已经包含了这些示例。
https://blog.codefx.org/libraries/junit-5-parameterized-tests/
问题是我无法添加@ParameterizedTest,因为缺少命名空间。不知道为什么或如何。
documentation 页面清楚地表明它在 org.junit.jupiter.params 中,但我没有。
让您了解我的代码:
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.jupiter.api.Assertions.*;
class SubsetPrinterTest
{
// https://blog.codefx.org/libraries/junit-5-parameterized-tests/
static Collection<Object[]> makeSetData()
{
return Arrays.asList(new Object[][]
{
{1, new char[]{'1'}},
{2, new char[]{'1', '2'}},
{3, new char[]{'1', '2', '3'}},
{4, new char[]{'1', '2', '3', '4'}},
{5, new char[]{'1', '2', '3', '4', '5'}}
});
}
// This should be a parameterized test using the makeSetData.
@Test
void makeSet()
{
// Arrange
SubsetPrinter subsetPrinter = new SubsetPrinter();
// Act
char[] set = SubsetPrinter.MakeSet(5);
// Assert
assertArrayEquals(set, new char[]{'1', '2', '3', '4', '5'});
assertEquals(set.length, 5);
}
}
您的项目 class-path 必须包含 junit-jupiter-params-xxx.jar
的版本,例如 http://central.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.0.0/
junit-jupiter-params-5.0.0.jar
codefx.org
你 link 的博客 post 说(编辑到当前 5.0.0 版本):
Getting started with parameterized tests is pretty easy but before the fun can begin you have to add the following dependency to your project:
Group ID: org.junit.jupiter Artifact ID: junit-jupiter-params Version: 5.0.0
要么手动下载并添加它,要么如果您使用的是具有依赖关系管理的构建工具(Gradle、Maven 等),请配置构建脚本(build.gradle、pom.xml, ...) 相应地。
在此处查找一些通用示例:https://github.com/junit-team/junit5-samples
从版本 5.4.0-M1 开始,JUnit Jupiter 提供了一个聚合器工件,它捆绑了所有可用的 Jupiter 定义工件以便于使用。有关详细信息,请参阅 https://sormuras.github.io/blog/2018-12-26-junit-jupiter-aggregator.html。
在pom.xml中添加如下依赖。 jupiter API [Junit 5] 将模块作为插件处理,每一个都必须有意添加,
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>