@ParameterizedTest无法在IntelliJ IDEA 2017.3中得到解决

时间:2018-01-17 18:38:56

标签: java intellij-idea junit parameterized-unit-test

我是JUnit测试的新手,我想在 IntelliJ IDEA 2017.3.3 中创建一个参数化测试。所以我添加了JUnit 5:

Adding JUnit 5

然后IntelliJ下载了org.junit.jupiter:junit-jupiter-api:5.0.0。现在,@Test正在运行,但@ParameterizedTest不是。它说"无法解析符号' ParameterizedTest'"。它与@ValueSource

相同

Cannot resolve symbol 'ParameterizedTest'

代码:

import org.junit.jupiter.api.*;

class SSTest {

    @ParameterizedTest
    @ValueSource(ints = {1, 2, 3})
    void testSlowSort(int arg) {

    }

    @Test
    void testSort() {

    }

}

PS:还缺少包org.junit.jupiter.params。否则,IntelliJ会自动导入它。

我希望有人可以帮我解决这个问题。我没有使用Maven,Gradle等,只是Java。

2 个答案:

答案 0 :(得分:4)

article 2.1.2 of JUnit docs中,提到junit-jupiter-params是一个单独的工件,包含对参数化测试的支持。

article 3.14中,解释了参数化测试支持目前是一个实验性功能。

因此,您需要将junit-jupiter-params工件添加到依赖项(即Maven或Gradle)。

答案 1 :(得分:1)

使用下面的导入语句[Intellisense应该自动导入那些导入内容]

import org.junit.jupiter.params.ParameterizedTest

在您的build.gradle.kts中添加以下依赖项(用于gradle构建)

testImplementation("org.junit.jupiter:junit-jupiter-params:5.6.2")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-params:5.6.2")

构建项目和@ParameterizedTest批注应该可用。如果没有,请重新启动IntelliJ并加载库。