Ok, here is the problem: If you configure a custim exclclassloader please make sure to also exclude sun.reflect.DelegatingClassLoader (which is the default value), otherwise reflection will not work. so your coverage tag should read:

exclclassloader="sun.reflect.DelegatingClassLoader:javassist.Loader"

See documentation: http://eclemma.org/jacoco/trunk/doc/agent.html

Regards,
-marc


On 11.10.15 04:17, [email protected] wrote:
On Thursday, 1 October 2015 20:27:36 UTC+5:30, [email protected]  wrote:
Hi All,
   I am running code coverage using Jacoco, and getting error "Unable to read 
execution data file - reports\jacoco.exec"

OS - Windows7
JDK - 1.6 / (I tried with JDK 1.7 as well)
Jacoco - latest Jars

Below is the task definition

<jacoco:coverage destfile="reports/jacoco.exec" 
exclclassloader="javassist.Loader">
             <junit printsummary="yes" haltonfailure="yes" fork="yes" 
showoutput="yes">
                 <formatter type="xml"/>
                                <classpath>
                     <pathelement location="${test.classes.dir}"/>
                                        <pathelement 
location="${target.classes.dir}"/>
                                        <pathelement 
location="C:\kedar\work\CodeCoverage\DF1073Base\target\classes"/>
                                        <fileset dir="${slib.dir}">
                                                <include name="**/*.jar" />
                                        </fileset>
                 </classpath>
                

                 <batchtest fork="no" todir="reports">
                     <fileset dir="test">
                         <include name="**/*Test*.java"/>
                     </fileset>
                 </batchtest>
             </junit>
         </jacoco:coverage>
                
         <jacoco:report>
             <executiondata>
                 <file file="reports/jacoco.exec"/>
             </executiondata>
             <structure name="JaCoCo Ant Example">
                 <classfiles>
                     <fileset dir="${test.classes.dir}"/>
                 </classfiles>
                 <sourcefiles encoding="UTF-8">
                     <fileset dir="src"/>
                 </sourcefiles>
             </structure>
                <html destdir="reports"/>
                <csv destfile="reports/report.csv"/>
                <xml destfile="reports/report.xml"/>
         </jacoco:report>
        </target>


If I keep "batchtest fork="no"" - Jacoco executes the Test cases successfully - 
But Does not generate jacoco.exec file. Can someone help to identify - Why is not generating the 
jacoco.exec file?

If I keep "batchtest fork="yes/true"" - Jacoco generates jacoco.exec file, but all the 
test cases fail saying "Class not found sun/reflect/GeneratorAccessorMethod".

Please let me know if more information is required.
Hi Marc,
   Thanks for response, sorry for late reply.

We have
1. Jacoco 0.7.5
2. JDK 1.6.29 (Also Tried with JDK 1.7)
3. Stack Trace when 'fork='yes' in batchtest target

Buildfile: C:\batch\build.xml
test:
    [delete] Deleting directory C:\batch\target\classes\test
     [mkdir] Created dir: C:\batch\target\classes\test
     [javac] Compiling 2 source files to C:\batch\target\classes\test
     [javac]           WARNING
     [javac] The -source switch defaults to 1.7 in JDK 1.7.
     [javac] If you specify -target 1.6 you now must also specify -source 1.6.
     [javac] Ant will implicitly add -source 1.6 for you.  Please change your 
build file.
     [javac] warning: [options] bootstrap class path not set in conjunction 
with -source 1.6
     [javac] Note: Some input files use or override a deprecated API.
     [javac] Note: Recompile with -Xlint:deprecation for details.
     [javac] 1 warning
    [delete] Deleting directory C:\batch\reports
     [mkdir] Created dir: C:\batch\reports
[jacoco:coverage] Enhancing junit with coverage
     [junit] Running com.citi.doddfrank.batch.DFBICSortMapDataUploadTest
     [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.847 sec
     [junit] log4j:WARN No appenders could be found for logger 
(org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
     [junit] log4j:WARN Please initialize the log4j system properly.
     [junit] log4j:WARN See 
http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
     [junit] Running batch.ABCTest
     [junit] Exception in thread "main" java.lang.NoClassDefFoundError: 
sun/reflect/GeneratedMethodAccessor4
     [junit]    at sun.reflect.GeneratedMethodAccessor4.<init>(Unknown Source)
     [junit]    at 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     [junit]    at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
     [junit]    at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
     [junit]    at java.lang.reflect.Constructor.newInstance(Unknown Source)
     [junit]    at java.lang.Class.newInstance(Unknown Source)
     [junit]    at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
     [junit]    at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
     [junit]    at java.security.AccessController.doPrivileged(Native Method)
     [junit]    at sun.reflect.MethodAccessorGenerator.generate(Unknown Source)
     [junit]    at sun.reflect.MethodAccessorGenerator.generateMethod(Unknown 
Source)
     [junit]    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
     [junit]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
Source)
     [junit]    at java.lang.reflect.Method.invoke(Unknown Source)
     [junit]    at 
org.apache.commons.logging.LogFactory.getContextClassLoader(LogFactory.java:442)
     [junit]    at 
org.apache.commons.logging.LogFactory$1.run(LogFactory.java:222)
     [junit]    at java.security.AccessController.doPrivileged(Native Method)
     [junit]    at 
org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:218)
     [junit]    at 
org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
     [junit]    at 
org.springframework.test.annotation.ProfileValueUtils.<clinit>(ProfileValueUtils.java:40)
     [junit]    at 
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.getDescription(SpringJUnit4ClassRunner.java:152)
     [junit]    at org.junit.runner.Runner.testCount(Runner.java:41)
     [junit]    at 
junit.framework.JUnit4TestAdapter.countTestCases(JUnit4TestAdapter.java:34)
     [junit]    at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:519)
     [junit]    at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1060)
     [junit]    at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:911)
     [junit] Running batch.ABCTest
     [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec

BUILD FAILED
C:\work\CodeCoverage\abc\build.xml:274: Test batch.ABCTest failed (crashed)

Total time: 21 seconds


--
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jacoco/561B4CF5.4030308%40mountainminds.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to