14:05:38 [junit] 14:05:38 [junit] Testcase: testValidateQwestCktIdVCID took 0.171 sec 14:05:38 [junit] Caused an ERROR 14:05:38 [junit] org/apache/log4j/Category 14:05:38 [junit] java.lang.NoClassDefFoundError: org/apache/log4j/Category 14:05:38 [junit] at com.qwest.eflow.eman.common.nwf.FOAValidationHandler.<clinit>(FOAValidationHandler.java:44) 14:05:38 [junit] at com.ant.sonar.jacoco.junit.code.coverage.JacacoCoverageTest.testValidateQwestCktIdVCID(JacacoCoverageTest.java:31) 14:05:38 [junit] Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Category 14:05:38 [junit] at java.net.URLClassLoader.findClass(URLClassLoader.java:382) 14:05:38 [junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:419) 14:05:38 [junit] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) 14:05:38 [junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:352) 14:05:38 [junit] 14:05:38 [junit] Testcase: testUncoveredMethod took 0.001 sec 14:05:38 [junit] Caused an ERROR 14:05:38 [junit] org/apache/log4j/Category 14:05:38 [junit] java.lang.NoClassDefFoundError: org/apache/log4j/Category 14:05:38 [junit] at com.ant.sonar.jacoco.junit.code.coverage.JacacoCoverage.<clinit>(JacacoCoverage.java:6)
I am using apache log4j in my code.
Could you please help me how can I ignore all the log statements in a java class during jacoco coverage.
below is ant configuration for jacoco -
<target name="test" depends="compile">
<jacoco:coverage destfile="${result.exec.file}" excludes="org.apache.log4j.*">
<junit showoutput="true" printsummary="on" enabletestlistenerevents="true" fork="true" haltonfailure="no" forkmode="once">
<classpath path="${result.classes.dir}"/>
<classpath path="${junit.jar.path}"/>
<classpath path="${hamcrest.jar.path}"/>
<classpath location="../../ant-junit-1.9.5.jar"/>
<formatter type="plain" usefile="false"/>
<test name="com.ant.sonar.jacoco.junit.code.coverage.JacacoCoverageTest"/>
</junit>
</jacoco:coverage>
<!-- Step 3: Create coverage report -->
<jacoco:report>
<!--
This task needs the collected execution data and ...
-->
<executiondata>
<file file="${result.exec.file}"/>
</executiondata>
<!-- the class files and optional source files ... -->
<structure name="JaCoCo Ant Example">
<classfiles>
<fileset dir="${result.classes.dir}"/>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${src.dir}"/>
</sourcefiles>
</structure>
<!-- to produce reports in different formats. -->
<html destdir="${result.report.dir}"/>
<csv destfile="${result.report.dir}/report.csv"/>
<xml destfile="${result.report.dir}/report.xml"/>
</jacoco:report>
</target>
Please let me know if anything needed from my end.
--
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/24b019eb-422e-4553-936d-ed1502f14baeo%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to jac...@googlegroups.com.
Let me rephrase what Marc said:As highlighted below there is no log4j jar in classpath of "junit" task in your ant script.And so you will be receiving the same ClassNotFoundException even without wrapping "junit" by "jacoco:coverage"If you disagree with the above observations, then please provide complete example, because partial snippets are not debuggable.