java.lang.IncompatibleClassChangeError org.junit.jupiter.params.provider.Arguments должен быть константой InterfaceMethodref - PullRequest
0 голосов
/ 27 сентября 2018
import groovy.transform.CompileStatic
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource

import java.util.stream.Stream

import static org.assertj.core.api.Assertions.assertThat

@CompileStatic
class MyUnitTest {


    @ParameterizedTest(name = "{index} => myString={0}")
    @MethodSource("provideData")
    void test(String myString) {

        assertThat("hallo").isEqualTo(myString)
    }

    private static Stream<Arguments> provideData() {
        return Stream.of(
          Arguments.of("hallo"))
    }
}

Запуск этого теста JUnit 5 выдает следующую ошибку: Метод

org.junit.jupiter.params.provider.Arguments.of ([Ljava / lang / Object;) Lorg/ JUnit / Jupiter / PARAMS / поставщик / Аргументы;должна быть константой InterfaceMethodref java.lang.IncompatibleClassChangeError: Метод org.junit.jupiter.params.provider.Arguments.of ([Ljava / lang / Object;) Lorg / junit / jupiter / params / provider / Arguments;должна быть константа InterfaceMethodref

Я использую Java 10, и у меня включен JUnit 5 в моем build.gradle.

1 Ответ

0 голосов
/ 27 сентября 2018

Ваша версия Groovy кажется слишком старой.

Похоже, вы немного на https://issues.apache.org/jira/browse/GROOVY-7879 В случае, если кто-то использует Gradle, эта ошибка также известна там и сообщается через https://github.com/gradle/gradle/issues/721

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...