Discussion:
[java code coverage] jacoco-maven-plugin:prepare-agent with "excludes" parameter syntax !!!!
yajvane
2016-10-12 11:01:55 UTC
Permalink
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.
--
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+***@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.
Marc R. Hoffmann
2016-10-14 06:10:18 UTC
Permalink
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
Post by yajvane
Hi,
In order to get the coverage for power mock(mockito) based test cases
., tried offline Instrumentation and looks it is working fine. However
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.
mvn org.jacoco:jacoco-maven-plugin:prepare-agent*["excludes=*]* test
-Dmaven.test.failure.ignore=true
Thanks for all the help.
-Regards,
kesav.
--
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
To view this discussion on the web visit
https://groups.google.com/d/msgid/jacoco/81a09199-e8b9-489f-bcf0-74e1e4b98b83%40googlegroups.com
<https://groups.google.com/d/msgid/jacoco/81a09199-e8b9-489f-bcf0-74e1e4b98b83%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/b1035013-0b15-2a52-2cc1-8a36a60c5e3c%40mountainminds.com.
For more options, visit https://groups.google.com/d/optout.
yajvane
2016-10-14 18:57:51 UTC
Permalink
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.html. *paragraph*: "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.
Post by Marc R. Hoffmann
Hi Kesav,
<configuration>
<excludes>
<exclude>*</exclude>
</excludes>
</configuration>
But if you use offline-instrumention there is no need for a agent, you can
http://www.eclemma.org/jacoco/trunk/doc/examples/build/pom-offline.xml
Regards,
-marc
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
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.
mvn org.jacoco:jacoco-maven-plugin:prepare-agent*["excludes=*]* test
-Dmaven.test.failure.ignore=true
Thanks for all the help.
-Regards,
kesav.
--
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
To view this discussion on the web visit
https://groups.google.com/d/msgid/jacoco/81a09199-e8b9-489f-bcf0-74e1e4b98b83%40googlegroups.com
<https://groups.google.com/d/msgid/jacoco/81a09199-e8b9-489f-bcf0-74e1e4b98b83%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
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+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/4f9fd339-1df7-4c6d-bc71-799612615d14%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...