【问题标题】:Extension function not found when run tests运行测试时找不到扩展功能
【发布时间】:2018-08-16 15:41:23
【问题描述】:

我有这个扩展:

src/main/kotlin/com/myproject/api/extensions.kt

fun String.asJson() : JsonObject {
    return JsonObject.readFrom(this)
}

当我运行我的应用程序时,它运行良好。但是,当我运行使用该扩展功能的测试用例时,它会崩溃:

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

我错过了什么?

【问题讨论】:

  • 你能分享你的模块的 gradle.build 吗?
  • 几小时后才找到答案... -.-" 我要贴出来了
  • 非常适合您!您可以通过解释或参考您如何解决它来回答。我会帮助其他有同样问题的人;)

标签: kotlin kotlin-extension


【解决方案1】:

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

【讨论】:

  • 2021 和 Kotlin 1.5.30 在这里,这仍然是相关的。如果您在类路径的两个不同位置(例如在多项目 Gradle 项目中)有相同的文件(甚至不区分大小写),您会得到这个奇怪的异常 -- NoSuchMethodError
猜你喜欢
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多