运行测试时找不到扩展功能

Héc*_*tor 4 kotlin kotlin-extension

我有这个扩展名:

的src/main /科特林/ COM/myproject的/ API/extensions.kt

fun String.asJson() : JsonObject {
    return JsonObject.readFrom(this)
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序时,它工作正常.但是,当我运行使用该扩展函数的测试用例时,它会崩溃:

java.lang.NoSuchMethodError:com.myproject.api.ExtensionsKt.asJson(Ljava/lang/String;)Lcom/eclipsesource/json/JsonObject;

我错过了什么?

Héc*_*tor 8

几个小时后,我终于找到了错误.我已经extensions.kt在同一个包中但在测试目录中有一个文件!src/test/kotlin/com/myproject/api/extensions.kt.我把名字改成了,testExtensions.kt现在一切正常.

  • 2021 年和 Kotlin 1.5.30 在这里,这仍然相关。如果您在类路径上的两个不同位置(例如在多项目 Gradle 项目中)有相同的文件(甚至不区分大小写),您会得到这个奇怪的异常 - `NoSuchMethodError`。 (2认同)