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

Reply via email to