Android(Kotlin)代码覆盖率异常
Android连接测试中的代码覆盖率(Jacoco)是确定哪些方法/函数需要TLC的一种非常有用的方法。现在我切换到Kotlin而不是Java,我发现了一些我无法解释的异常情况,如此屏幕截图所示:Android(Kotlin)代码覆盖率异常,android,kotlin,jacoco,Android,Kotlin,Jacoco,Android连接测试中的代码覆盖率(Jacoco)是确定哪些方法/函数需要TLC的一种非常有用的方法。现在我切换到Kotlin而不是Java,我发现了一些我无法解释的异常情况,如此屏幕截图所示: 以$$开头的方法。。。是Kotlin或Android内部的,我强烈怀疑。我的问题是:1)有人知道为什么这些方法会包含在Jacoco代码覆盖率报告中吗?2)有没有办法排除它们?这些方法是在通过Kotlin Android扩展使用合成属性时添加的。使用合成特性的每个Kotlin活动都将添加这些方法 Ko
以$$开头的方法。。。是Kotlin或Android内部的,我强烈怀疑。我的问题是:1)有人知道为什么这些方法会包含在Jacoco代码覆盖率报告中吗?2)有没有办法排除它们?这些方法是在通过Kotlin Android扩展使用合成属性时添加的。使用合成特性的每个Kotlin活动都将添加这些方法 Kotlin Android Extensions是Kotlin编译器的插件,它有两个功能: 在每个Kotlin活动中添加隐藏缓存函数和字段。该方法非常小,因此不会大大增加APK的大小 用函数调用替换每个合成属性调用 官方文件说明: 本文非常详细地介绍了以下内容:
在很大程度上,由于@triad的回答,我能够找到一个解决Kotlin bug的解决方案。这项工作在@triad引用的Antonio Leiva帖子中进行了记录。简而言之,解决方案是在MainActivity中关闭缓存。完整的解决方案是
我不完全了解此解决方案的成本,因此我将推迟检查此答案,希望能提供更好的解决方案。答案很好,但我的两个问题仍然存在:1)如果这些是“隐藏”功能,为什么Jacoco不隐藏它们?2) 有没有办法排除这些函数,或者在测试中调用它们?第二个问题的解决方案将是首选。@godin您的链接非常感谢。