java.lang.IncompatibleClassChangeError org.junit.jupiter.params.provider.Arguments должен быть константой InterfaceMethodref
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/ языки / объекта;)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 ответ
Ваша версия Groovy кажется слишком старой.
Похоже, что вы немного по https://issues.apache.org/jira/browse/GROOVY-7879 В случае, если кто-то использует Gradle, эта ошибка также известна там и сообщается через https://github.com/gradle/gradle/issues/721