【问题标题】:Kotlin-allopen for androidKotlin-allopen for android
【发布时间】:2017-06-18 01:54:16
【问题描述】:

是否可以使用 kotlin-allopen gradle 插件通过 mockito 进行 android 测试?

我尝试将 kotlin-allopen 插件添加到我的 build.gradle 并定义注释。

buildscript {
   ext.kotlin_version = '1.0.6'

   dependencies {
       classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
       classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
   }
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-allopen'
apply plugin: 'kotlin-android'

allOpen {
    annotation("com.mycompany.OpenForTest")
}

这些用于注释本身

annotation class OpenForTest

它不适合我。也许我错过了什么?

【问题讨论】:

  • 有什么问题?有没有遇到什么错误,还是只是问能不能搞定?
  • 它根本行不通

标签: android kotlin kotlin-allopen


【解决方案1】:

是的,你可以。 因为它是一个编译器插件,所以编译后你会得到全开放的代码。 所以它应该与测试一起工作。 别担心。

编辑:根据评论区,更新 kotlin 插件版本似乎可行。目前最新版本为1.2.41

【讨论】:

  • 对不起,我没能做到。看起来它不适用于 Android gradle 插件,但在文档中的任何地方都没有明确说明。或者至少我还没有找到它。
  • 没关系,目前最新版本为1.1.3-2。能不能再更新一下?
  • 顺便说一句,现在最新的是1.2.0:D
  • 我遇到了同样的问题。似乎没有工作。我使用的是 Kotlin 版本 1.3.41 和相同版本的插件。
【解决方案2】:

首先在你的build.gradle(项目)文件中添加依赖:

dependencies {
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
    }

然后在你的 build.gradle (app mobdule) 文件中应用插件:

apply plugin: 'kotlin-allopen'

然后指定将使类打开的注释列表:

allOpen {
    annotation('com.example.myproject.OpenForTesting')
}

并为您想要打开的每个类使用此注释

@OpenForTesting

这里是关于 All-open 的 Kotlin 官方文档:https://kotlinlang.org/docs/reference/compiler-plugins.html

希望有帮助

【讨论】:

  • @MrVasiliev,你能告诉我为什么我的插件无法使用吗? stackoverflow.com/questions/60025359/…
  • @LenaBru 您是否在 build.gradle 文件中检查了 OpenForTesting 文件的路径 -> "annotation('com.example.myproject.OpenForTesting')" ?
猜你喜欢
  • 2017-05-18
  • 2020-05-18
  • 2019-11-16
  • 1970-01-01
  • 2015-10-16
  • 2018-05-10
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多