Czyzby
Czyzby

Reputation: 3139

No coverage report for inlined Kotlin methods

Kotlin functions marked with inline keyword are, well, inlined during the compilation and it seems that code coverage tools (like JaCoCo) fail to properly calculate code coverage. What is the usual approach to overcoming this issue? Is there a way to make the test somehow avoid the inlining step and invoke the tested methods directly? Is it possible to skip report generation of all inlined methods (via Gradle task, for example) without excluding whole classes?

Upvotes: 17

Views: 4734

Answers (3)

Czyzby
Czyzby

Reputation: 3139

Kotlin team has introduced the Kover plugin with the goal of supporting all language constructs including inline functions.

Upvotes: 5

Manushin Igor
Manushin Igor

Reputation: 3689

There is the bug in the JetBrains Java Coverage tools, see https://youtrack.jetbrains.com/issue/KT-12605 .

So, just wait until bug will be fixed (or vote on it, to speedup development)

Upvotes: 2

Kiskae
Kiskae

Reputation: 25583

I don't believe it is possible to turn off inlining since some functions may not make any sense if they are not inlined. These include functions with reified types (since the inlining creates the availability of type information) and functions with lambdas as parameters, since they can affect the control flow of the method they are inlined in.

Upvotes: 5

Related Questions