Огурец котлин : исключение IllegalStateException при запуске теста через Intellij

#kotlin #exception #intellij-idea #cucumber #cucumber-java

Вопрос:

Я пытаюсь запустить огурец (написанный на котлине) через intellij.

У меня есть класс определения шага, описанный следующим образом :

введите описание изображения здесь

Когда я запускаю тест из Intellij, у меня есть это исключение для «Данного» метода: java.lang.Исключение IllegalStateException: Может разрешить тип возвращаемого значения лямбды в BusinessEventSteps.kt:19

введите описание изображения здесь

При использовании «чистой установки mvn» из командной строки тест выполняется нормально.

Мое окружение:

  • macOS
  • Coretto 11.0.11
  • Intellij 2021.1.1
  • Котлин 1.4.10
  • огурец 6.10.4

Комментарии:

1. Огурец ловит рыбу в постоянном бассейне, чтобы определить тип типов лямбды. Похоже, у Коррето неожиданная планировка. Я сомневаюсь, что это можно легко исправить или вообще исправить. Это означает, что вы должны использовать cucumber-java с Котлином вместо cucumber-java8 .

2. Ну, самое странное, что он работает с использованием mvn в командной строке, а также работает на компьютере коллеги, единственное отличие, которое я вижу, заключается в том, что он работает в Windows. Поэтому я не уверен, что это имеет какое-то отношение к библиотеке огурцов.

3. Это зависит от используемой JVM. Ваша IDE, maven и коллега, вероятно, используют разные JVM.

4. Вы можете опубликовать свое решение в качестве ответа.

5. И понятия не имею, почему, кроме того, что я сказал. Огурец Java8 зависит от деталей реализации в JVM. Если ИДЕЯ не соответствует этим деталям, она не будет работать

Ответ №1:

Нашел обходной путь. Похоже, что проблема как-то связана с собственным компилятором Intellij. Редактирование конфигураций запуска/отладки и замена шага «Сборка» по умолчанию на цель maven, все работает нормально.

Надеюсь, это поможет другим !

введите описание изображения здесь