2016-10-02 67 views
6

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

回答

3

我不相信有可能关闭内联,因为如果某些函数没有内联,它们可能没有任何意义。这些包括reified类型的函数(因为内联创建了类型信息的可用性)并且函数以lambda作为参数,因为它们可以影响它们被内联的方法的控制流。

+0

这是我所担心的。那么,你知道任何可以正确计算内联函数的代码覆盖率的工具吗?我正在维护一个库,其中一个模块主要由类型安全的构建者组成,并且经过广泛的单元测试 - 报告的代码覆盖百分比相当差。 – JustACluelessNewbie