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

Reply via email to