@ParameterizedTest не может быть разрешен в IntelliJ IDEA 2017.3

Я новичок в тестировании JUnit и хочу создать параметризованный тест в IntelliJ IDEA 2017.3.3. Поэтому я добавил JUnit 5:

Добавление JUnit 5

Затем IntelliJ загрузил org.junit.jupiter:junit-jupiter-api:5.0.0. Теперь @Test работает, а @ParameterizedTest нет. Пишет "Не удается разрешить символ "ParameterizedTest"". То же самое и с @ValueSource:

Не удается разрешить символ

Код:

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.


person Aloso    schedule 17.01.2018    source источник
comment
Вам нужно импортировать его, пакет org.junit.jupiter.params. Intellij может сделать это за вас.   -  person van dench    schedule 17.01.2018
comment
@vandench Этот пакет для меня не существует   -  person Aloso    schedule 17.01.2018
comment
Что происходит, когда вы нажимаете Alt + Enter на @ParameterizedTest?   -  person van dench    schedule 17.01.2018
comment
@vandench 1. Создать аннотацию ParameterizedTest - 2. Найти JAR в Интернете   -  person Aloso    schedule 17.01.2018
comment
Согласно этому, API должен его содержать. Если это не так, вам придется вручную добавить последнюю версию.   -  person van dench    schedule 17.01.2018
comment
@vandench Не могли бы вы рассказать мне, как это сделать - вручную добавить последнюю версию?   -  person Aloso    schedule 17.01.2018


Ответы (2)


В статье 2.1.2 документации JUnit , упоминается, что junit-jupiter-params — это отдельный артефакт, содержащий поддержку параметризованных тестов.

В статье 3.14 объясняется, что поддержка параметризованных тестов в настоящее время является экспериментальной функцией.

Поэтому вам нужно добавить артефакт junit-jupiter-params в свои зависимости (например, Maven или Gradle).

person Hay    schedule 14.06.2018

используйте приведенный ниже оператор импорта [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, и библиотеки должны быть загружены.

person Rakesh Raut    schedule 09.10.2020