EclEmma and Mockito do not work well together out-of-the-box. EclEmma report no coverage at all on test run with PowerMock runner. However there is a way to make it work together, using the PowerMock javaagent. To do this, don’t use the @RunWith(PowerMockRunner.class) annotation as you’re used to. Instead, use the standard JUnit Runner or your runner extending a JUnit one, and add this rule to all your test classes:
@Rule public PowerMockRule rule = new PowerMockRule();
You will also need to add the 2 following jars to your classpath, as explained here:
- powermock-module-javaagent
- powermock-module-junit4-rule-agent
You can find then on the Maven repository: here and here.
Third step is to initialize the agent, add the following lines to all your test classes, or to you runner if you have one to add it only once:
static { PowerMockAgent.initializeIfNeeded(); }
And finally last step: modify your launch configuration running your test to add the following option to the VM arguments:
-javaagent:libs/powermock-module-javaagent-1.6.0.jar
And you should be able to use the Coverage As for EclEmma and see you test coverage result!