jacoco-maven-plugin:prepare-agent with "excludes" parameter syntax !!!!

806 views
Skip to first unread message

yajvane

unread,
Oct 12, 2016, 7:01:56 AM10/12/16
to JaCoCo and EclEmma Users
Hi,

In order to get the coverage for power mock(mockito) based test cases ., tried offline Instrumentation and looks it is working fine. However seeing this exception multiple times on console (Caused by: java.lang.IllegalStateException: Class x/y/z is already instrumented).

As per the jacoco documentation related to offline instrumentation: ( http://www.eclemma.org/jacoco/trunk/doc/offline.html) it looks there is an optional parameter "excludes=*" that can be used to stop this exception continuously getting popped-up on console.
   
How to specify this optional parameter as part of jacoco-maven-plugin:prepare-agent goal ?? (http://www.eclemma.org/jacoco/trunk/doc/prepare-agent-mojo.html) . I tried different ways but any syntax is not working fine.

command trying to use:
 mvn org.jacoco:jacoco-maven-plugin:prepare-agent["excludes=*] test -Dmaven.test.failure.ignore=true 


Thanks for all the help.

-Regards,
kesav.

Marc R. Hoffmann

unread,
Oct 14, 2016, 2:10:20 AM10/14/16
to jac...@googlegroups.com
Hi Kesav,

this should do the Job for the prepare-agent goal:

<configuration>
  <excludes>
    <exclude>*</exclude>
  </excludes>
</configuration>

But if you use offline-instrumention there is no need for a agent, you can simply put it on the classpath. See this example in our documentation:

http://www.eclemma.org/jacoco/trunk/doc/examples/build/pom-offline.xml

Regards,
-marc
--
You received this message because you are subscribed to the Google Groups "JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jacoco+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/81a09199-e8b9-489f-bcf0-74e1e4b98b83%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

yajvane

unread,
Oct 14, 2016, 2:57:51 PM10/14/16
to JaCoCo and EclEmma Users
Hi Marc,

1] The restriction on my side was , I can NOT change pom.xml's (there are 100+ pom.xml's : multi-module maven project). I should use jacoco-maven-plugin and pass all parameters as command-line arguments for prepare-agent goal. Is it possible to pass "exclude" parameter via command-line rather configuring pom's ?

2] Also, can you please confirm me the below process ?? I am using pre-instrumented classes with jacoco-maven-plugin. (ref:http://www.eclemma.org/jacoco/trunk/doc/offline.htmlparagraph: "Using Pre-Instrumented Classes With the Java Agent"). 

steps followed:
-> compile - classes generated
-> instrument - replace generated-classes with instrumented-classes
-> test - perform unit tests using instrumented classes (ex: mvn org.jacoco:jacoco-maven-plugin:prepare-agent test)
-> restore-instrumented-classes - restore back to original classes on disk for further analysis 

I verified & looks fine to me for couple of projects (both testng/power-mock based test cases). it looks jacoco agent is identifying the pre-instrumented classes at run time and not-instrumenting the again. 

I hope there should NOT be any minute discrepancy with this process. Can you please confirm the steps once ? 

-Regards,
Kesav.
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages