arturdm / arturdm/jacoco-android-gradle-plugin

PowerMockito @PrepareForTest disables JaCoCo

Open
#49 5 comments 5 reactions 0 assignees View on GitHub
Dominant language
Groovy
Stars
565
Forks
107
PR merge metrics
No merged PRs in 30d

Description

When using [PowerMock](https://github.com/powermock/powermock) in the unit tests, the classes declared with `@PrepareForTest` don't get coverage info due to following error:

```
[ant:jacocoReport] Classes in bundle 'app' do no match with execution data. For report generation the same class files must be used as at runtime.
[ant:jacocoReport] Execution data for class com/example/android/ExampleClassA does not match.
[ant:jacocoReport] Execution data for class com/example/android/ExampleClassB does not match.
```
After a small research I've found out that it's a known issue of jacoco regarding javassist/javaagent:

https://github.com/powermock/powermock/issues/422
https://github.com/jacoco/eclemma/issues/15

But unfortunately, I wasn't able to make the fix of the issue, as suggested for maven by using the custom java agent of PowerMock library, to work for gradle, because I couldn't declare a jar file from dependencies (powermock-api-mockito2-1.7.4.jar) as a custom java agent in gradle, as done in this workaround:

http://stevendick.github.io/blog/2012/02/12/jacoco-and-gradle-part-2/

It failed, since the java plugin is conflicting with the android plugin.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.