Hi,
I am using Cobertura maven plugin and trying to generate report containing
coverage details.
JDK version: 1.7
Test cases: Junits developed using Powermock (With Easymock)
Added below thing in pom.xml to generate reports using Cobertura:
<reporting>
<plugins>
<!-- Normally, we take off the dependency report, saves time. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.7</version>
<configuration>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
</configuration>
</plugin>
<!-- integrate maven-cobertura-plugin to project site -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
</plugin>
</plugins>
</reporting>
My project contains multiple maven modules. For some modules results are
correct, but for some of them I am getting below exceptions with coverage as
zero in the report
Exception in thread "Thread-2" java.lang.ExceptionInInitializerError
at
com.hp.dmmt.importtemplate.service.InventoryDataImportTemplateServiceImpl.__cobertura_init(InventoryDataImportTemplateServiceImpl.java)
at
com.hp.dmmt.importtemplate.service.InventoryDataImportTemplateServiceImpl.<clinit>(InventoryDataImportTemplateServiceImpl.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesToSingleClassOnProjectData(TouchCollector.java:121)
at
net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData(TouchCollector.java:107)
at
net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData(ProjectData.java:270)
at net.sourceforge.cobertura.coveragedata.SaveTimer.run(SaveTimer.java:32)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IllegalStateException: Shutdown in progress
at
java.lang.ApplicationShutdownHooks.add(ApplicationShutdownHooks.java:66)
at java.lang.Runtime.addShutdownHook(Runtime.java:209)
at
net.sourceforge.cobertura.coveragedata.ProjectData.initialize(ProjectData.java:237)
at
net.sourceforge.cobertura.coveragedata.ProjectData.getGlobalProjectData(ProjectData.java:208)
at
net.sourceforge.cobertura.coveragedata.TouchCollector.<clinit>(TouchCollector.java:46)
... 11 more
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: Could not
initialize class net.sourceforge.cobertura.coveragedata.TouchCollector
at
com.hp.dmmt.importtemplate.service.InventoryDataImportTemplateParser.__cobertura_init(InventoryDataImportTemplateParser.java)
at
com.hp.dmmt.importtemplate.service.InventoryDataImportTemplateParser.<clinit>(InventoryDataImportTemplateParser.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesToSingleClassOnProjectData(TouchCollector.java:121)
at
net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData(TouchCollector.java:107)
at
net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData(ProjectData.java:270)
at net.sourceforge.cobertura.coveragedata.SaveTimer.run(SaveTimer.java:32)
at java.lang.Thread.run(Thread.java:722)
Please let me know how can I solve this problem and get correct coverage data.
Regards,
Tej