Hi Team,
I am new to contributing to WSO2 carbon-apimgt project. I started
writing unit tests for org.wso2.carbon.apimgt.api sub module. To
generate jacoco coverage I modified pom.xml as below but when tried to
run tests I am getting below error. I searched Google tried many kind of
pom configurations but none of them worked. Could you please provide
correct configuration to generate jacoco report locally for the submodules.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
java.lang.instrument.IllegalClassFormatException: Error while
instrumenting class org/wso2/carbon/apimgt/api/APIDefinition.
at
org.jacoco.agent.rt.internal_8ff85ea.CoverageTransformer.transform(CoverageTransformer.java:93)
at
sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at
sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at
org.apache.maven.surefire.util.ReflectionUtils.tryGetMethod(ReflectionUtils.java:57)
at
org.apache.maven.surefire.common.junit3.JUnit3TestChecker.isSuiteOnly(JUnit3TestChecker.java:64)
at
org.apache.maven.surefire.common.junit3.JUnit3TestChecker.isValidJUnit3Test(JUnit3TestChecker.java:59)
at
org.apache.maven.surefire.common.junit3.JUnit3TestChecker.accept(JUnit3TestChecker.java:54)
at
org.apache.maven.surefire.common.junit4.JUnit4TestChecker.accept(JUnit4TestChecker.java:52)
at
org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:97)
at
org.apache.maven.surefire.junit4.JUnit4Provider.scanClassPath(JUnit4Provider.java:222)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:107)
at
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: java.io.IOException: Error while instrumenting class
org/wso2/carbon/apimgt/api/APIDefinition.
at
org.jacoco.agent.rt.internal_8ff85ea.core.instr.Instrumenter.instrumentError(Instrumenter.java:166)
at
org.jacoco.agent.rt.internal_8ff85ea.core.instr.Instrumenter.instrument(Instrumenter.java:117)
at
org.jacoco.agent.rt.internal_8ff85ea.CoverageTransformer.transform(CoverageTransformer.java:91)
... 30 more
Caused by: java.lang.IllegalStateException: Class
org/wso2/carbon/apimgt/api/APIDefinition is already instrumented.
at
org.jacoco.agent.rt.internal_8ff85ea.core.internal.instr.InstrSupport.assertNotInstrumented(InstrSupport.java:176)
at
org.jacoco.agent.rt.internal_8ff85ea.core.internal.instr.ClassInstrumenter.visitField(ClassInstrumenter.java:55)
at
org.jacoco.agent.rt.internal_8ff85ea.asm.ClassVisitor.visitField(ClassVisitor.java:272)
at
org.jacoco.agent.rt.internal_8ff85ea.asm.ClassReader.readField(ClassReader.java:783)
at
org.jacoco.agent.rt.internal_8ff85ea.asm.ClassReader.accept(ClassReader.java:704)
at
org.jacoco.agent.rt.internal_8ff85ea.asm.ClassReader.accept(ClassReader.java:521)
at
org.jacoco.agent.rt.internal_8ff85ea.core.instr.Instrumenter.instrument(Instrumenter.java:90)
at
org.jacoco.agent.rt.internal_8ff85ea.core.instr.Instrumenter.instrument(Instrumenter.java:114)
... 31 more
Running org.wso2.carbon.apimgt.api.APIDefinitionTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003
sec - in org.wso2.carbon.apimgt.api.APIDefinitionTest
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- jacoco-maven-plugin:0.7.9:report (post-unit-test) @
org.wso2.carbon.apimgt.api ---
[INFO] Loading execution data file
/home/shiva/play/carbon-apimgt/components/apimgt/org.wso2.carbon.apimgt.api/target/jacoco.exec
[INFO]
------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 3.695 s
[INFO] Finished at: 2019-11-24T12:55:11+05:30
[INFO] Final Memory: 28M/328M
[INFO]
------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.jacoco:jacoco-maven-plugin:0.7.9:report (post-unit-test) on project
org.wso2.carbon.apimgt.api: An error has occurred in JaCoCo report
generation.: Error while creating report: Error while analyzing
/home/shiva/play/carbon-apimgt/components/apimgt/org.wso2.carbon.apimgt.api/target/classes/org/wso2/carbon/apimgt/api/MonetizationException.class.
Class org/wso2/carbon/apimgt/api/MonetizationException is already
instrumented. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the
-e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
*POM configuration*
<?xml version="1.0" encoding="utf-8"?>
<!-- # Copyright (c) 2008, WSO2 Inc. (http://www.wso2.org) All Rights
Reserved.
# # Licensed under the Apache License, Version 2.0 (the "License");
# you
may not use this file except in compliance with the License. # You
may obtain
a copy of the License at # #
http://www.apache.org/licenses/LICENSE-2.0 #
# Unless required by applicable law or agreed to in writing,
software # distributed
under the License is distributed on an "AS IS" BASIS, # WITHOUT
WARRANTIES
OR CONDITIONS OF ANY KIND, either express or implied. # See the
License for
the specific language governing permissions and # limitations under
the License. -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.wso2.carbon.apimgt</groupId>
<artifactId>apimgt</artifactId>
<version>6.5.387-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.api</artifactId>
<packaging>bundle</packaging>
<name>WSO2 Carbon - Api for API Management</name>
<dependencies>
<dependency>
<groupId>com.googlecode.json-simple.wso2</groupId>
<artifactId>json-simple</artifactId>
</dependency>
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.registry.api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.artifactId}</Bundle-Name>
<Export-Package>
org.wso2.carbon.apimgt.api.*;version="${carbon.apimgt.version}"
</Export-Package>
<Import-Package>
*;resolution:=optional
</Import-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<!-- attached to Maven test phase -->
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
*Environment details:*
JDK - openjdk version "1.8.0_222"
Maven - Apache Maven 3.5.0
Thank You,
Shiva
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev