5

我是 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() {

    }

}

PS:包裹org.junit.jupiter.params也不见了。否则,IntelliJ 会自动导入它。

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

4

2 回答 2

10

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

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

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

于 2018-06-14T18:21:53.397 回答
4

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

import org.junit.jupiter.params.ParameterizedTest

将以下依赖项添加到您的 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")

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

于 2020-10-09T15:56:48.703 回答