@ParameterizedTest在IntelliJ IDEA 2017.3中无法解析

Alo*_*oso 3 java junit intellij-idea parameterized-unit-test

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

添加JUnit 5

然后IntelliJ下载org.junit.jupiter:junit-jupiter-api:5.0.0。现在,@Test正在工作,但@ParameterizedTest没有。它说“无法解析符号'ParameterizedTest'”。与相同@ValueSource

无法解析符号“ ParameterizedTest”

码:

import org.junit.jupiter.api.*;

class SSTest {

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

    }

    @Test
    void testSort() {

    }

}
Run Code Online (Sandbox Code Playgroud)

PS:同样org.junit.jupiter.params缺少包装。否则,IntelliJ将自动导入它。

我希望任何人都可以帮助我解决此问题。我不使用Maven,Gradle等,而仅使用Java。

小智 8

使用下面的导入语句[Intellisense 应该自动引入这些导入]

import org.junit.jupiter.params.ParameterizedTest
Run Code Online (Sandbox Code Playgroud)

将以下依赖项添加到您的 build.gradle.kts [for gradle builds]

testImplementation("org.junit.jupiter:junit-jupiter-params:5.6.2")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-params:5.6.2")
Run Code Online (Sandbox Code Playgroud)

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


Hay*_*Hay 5

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

文章3.14中,解释了参数化测试支持当前是一项实验功能。

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