Testing 内联Kotlin方法没有覆盖率报告

Testing 内联Kotlin方法没有覆盖率报告,testing,gradle,code-coverage,kotlin,jacoco,Testing,Gradle,Code Coverage,Kotlin,Jacoco,用inline关键字标记的Kotlin函数在编译过程中是内联的,代码覆盖率工具(如JaCoCo)似乎无法正确计算代码覆盖率。克服这个问题的通常方法是什么?有没有办法让测试以某种方式避免内联步骤并直接调用测试方法?是否可以跳过所有内联方法的报告生成(例如,通过Gradle任务),而不排除整个类?我认为不可能关闭内联,因为如果某些函数没有内联,它们可能没有任何意义。这些函数包括具体化的类型的函数(因为内联创建了类型信息的可用性)和以lambdas作为参数的函数,因为它们会影响内联方法的控制流。Jet

inline
关键字标记的Kotlin函数在编译过程中是内联的,代码覆盖率工具(如JaCoCo)似乎无法正确计算代码覆盖率。克服这个问题的通常方法是什么?有没有办法让测试以某种方式避免内联步骤并直接调用测试方法?是否可以跳过所有内联方法的报告生成(例如,通过Gradle任务),而不排除整个类?

我认为不可能关闭内联,因为如果某些函数没有内联,它们可能没有任何意义。这些函数包括
具体化的
类型的函数(因为内联创建了类型信息的可用性)和以lambdas作为参数的函数,因为它们会影响内联方法的控制流。

JetBrains Java Coverage tools中存在缺陷,请参阅


所以,只要等到bug被修复(或者投票表决,以加速开发)

这就是我所担心的。那么,您知道有什么工具可以正确计算内联函数的代码覆盖率吗?我正在维护一个库,其中包含一个模块,该模块主要由类型安全构建器组成,虽然经过了广泛的单元测试,但报告的代码覆盖率相当低。它被标记为的副本,并且已经修复。