Cucumber kotlin:通过Intellij启动测试时出现非法状态异常
我正试图通过intellij发布一个Cumber(用kotlin编写) 我有一个步骤定义类,描述如下: 当我从Intellij启动测试时,我在“给定”方法上有一个异常:java.lang.IllegalStateException:可以在BusinessEventSteps解析lambda的返回类型。kt:19 从命令行使用“mvn clean install”时,测试运行良好 我的环境:Cucumber kotlin:通过Intellij启动测试时出现非法状态异常,kotlin,exception,intellij-idea,cucumber,cucumber-java,Kotlin,Exception,Intellij Idea,Cucumber,Cucumber Java,我正试图通过intellij发布一个Cumber(用kotlin编写) 我有一个步骤定义类,描述如下: 当我从Intellij启动测试时,我在“给定”方法上有一个异常:java.lang.IllegalStateException:可以在BusinessEventSteps解析lambda的返回类型。kt:19 从命令行使用“mvn clean install”时,测试运行良好 我的环境: 马科斯 Coretto 11.0.11 Intellij 2021.1.1 Kotlin 1.4.1
- 马科斯
- Coretto 11.0.11
- Intellij 2021.1.1
- Kotlin 1.4.10
- 黄瓜6.10.4
- 找到了一个解决方法。
这个问题似乎与本机Intellij编译器有关。编辑运行/调试配置并用maven目标替换默认的“构建”步骤,一切正常
希望这能帮助别人
Cucumber在恒定池中捕鱼,以确定lambda的类型。看起来Correto有一个意外的布局。我怀疑这个问题能否轻易解决,或者根本无法解决。这意味着你必须将
cucumber-java
与Kotlin一起使用,而不是cucumber-java8
。奇怪的是,它在命令行中使用mvn工作,在collegue的PC上也能工作,我看到的唯一区别是他在Windows上。所以我不确定它是否与cucumber库有关,这取决于所使用的JVM。您的IDE、maven和同事可能正在使用不同的JVM。您可以将您的解决方案作为答案发布。而不是一条线索,除了我所说的之外,还有其他原因。Cucumber Java8取决于JVM中的实现细节。如果这个想法在这些细节上不匹配,它就不会起作用