Java JUnit5和IntelliJ IDEA:Kotlin函数命名,带倒勾和括号
从JUnit4升级到JUnit5并从Java JUnit5和IntelliJ IDEA:Kotlin函数命名,带倒勾和括号,java,kotlin,intellij-idea,junit,jetbrains-ide,Java,Kotlin,Intellij Idea,Junit,Jetbrains Ide,从JUnit4升级到JUnit5并从org.JUnit.Test升级到org.JUnit.jupiter.api.Test后,如果您直接通过IntellijIDEA运行测试方法(按类运行测试工作正常),则测试调用将停止工作 解决方法是从测试名称中删除括号。请参见下面的Kotlin示例 JUnit4: import org.junit.Test class A { @Test fun `my (fun)` (){ } } 直接从Idea运行此方法时效果良好 JUnit
org.JUnit.Test
升级到org.JUnit.jupiter.api.Test
后,如果您直接通过IntellijIDEA运行测试方法(按类运行测试工作正常),则测试调用将停止工作
解决方法是从测试名称中删除括号。请参见下面的Kotlin示例
JUnit4:
import org.junit.Test
class A {
@Test
fun `my (fun)` (){
}
}
直接从Idea运行此方法时效果良好
JUnit 5:
import org.junit.jupiter.api.Test
class A {
@Test
fun `my (fun)` (){
}
}
由于名称中的大括号“()”而导致异常失败:
org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-jupiter' failed to discover tests
at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:189)
at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:168)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: org.junit.platform.commons.JUnitException: MethodSelector [className = 'dsf.A', methodName = 'my ', methodParameterTypes = 'fun'] resolution failed
我知道发生问题的原因是JUnit中的API发生了变化,现在IntelliJ用括号传递参数,这些参数被解析为一些新的JUnitApi参数
但是有人能帮助理解这个问题的深层根源吗。它是Idea中的功能性错误还是JUnit中的错误
PS四轮马车奖金:
看起来像是Junit问题。尝试将
@JvmName(“myFun”)
预先添加到函数中,看看是否works@smac89,是的,当然这很好-这与将名称改为“fun myFun”是一样的@smac89我想问题来自Intellij'Braces'通常指的是{
}
<代码>()
通常是“括号”、“圆括号”、“括号”或“括号”。(见)我不认为这是IntelliJ的问题,因为我刚刚在IntelliJ上做了这项工作。你有没有可能用格拉德尔?