标记有inline
关键字的Kotlin函数在编译期间内联,似乎代码覆盖工具(如 JaCoCo )无法正确计算代码覆盖率。克服这个问题的常用方法是什么?有没有办法让测试以某种方式避免内联步骤并直接调用测试方法?是否可以跳过所有内联方法的报告生成(例如,通过 Gradle 任务)而不排除整个类?
答案 0 :(得分:4)
我不相信可以关闭内联,因为如果没有内联,某些功能可能没有任何意义。这些包括reified
类型的函数(因为内联创建了类型信息的可用性)和lambdas作为参数的函数,因为它们可以影响它们内联的方法的控制流。
答案 1 :(得分:1)
JetBrains Java Coverage工具中存在错误,请参阅https://youtrack.jetbrains.com/issue/KT-12605。
所以,等到bug修复(或投票,加快开发)