codice Coverage Kotlin e Java insieme utilizzando Maven – Jacoco

sto usando plugin Maven per generare la code-copertura con Maven Plugin come di seguito:

             <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
                <executions>
                    <execution>
                        <id>pre-unit-test</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>post-unit-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

ma questo non include alcuna copertura in codice del codice Kotlin nel progetto. ho appena eseguire la copertura su Java Code.

la struttura del progetto è:

/projectName
  /src
    /main
      /java
      /kotlin
  pom.xml

inoltre, nel pom, la sorgente di Kotlin viene compilata prima (usando il plugin kotlin-maven-) e poi la sorgente java.

come generare la copertura sia per Java e il codice Kotlin?

EN From: Code Coverage Kotlin and Java together using Maven – Jacoco

More similar articles:

3 Comments

  1. puoi aggiungere altre informazioni su come il codice Java e Kotlin sono organizzati all’interno del tuo progetto? inoltre, è possibile controllare se le classi Kotlin .class sono effettivamente scaricati eseguendo il dump goal?

  2. dato che segue src/main/java/InJava.java

    class InJava { void example() { } }

    seguito src/main/kotlin/InKotlin.kt

    class InKotlin {
      fun example() {
      }
    }

    seguito src/test/java/ExampleTest.java

    public class ExampleTest { @org.junit.Test public void test() { new InJava().example(); new InKotlin().example(); } }

    e pom.xml

    <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"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>example</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <!-- Add "src/main/kotlin" as additional source directory, so that kotlin-maven-plugin and jacoco-maven-plugin will look for files in it --> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.basedir}/src/main/kotlin</source> </sources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>1.3.30</version> <executions> <execution> <id>compile</id> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.3</version> <executions> <execution> <goals> <goal>prepare-agent</goal> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>

    esecuzione di mvn verify

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------< org.example:example >-------------------------
    [INFO] Building example 0.0.1-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- jacoco-maven-plugin:0.8.3:prepare-agent (default) @ example ---
    [INFO] argLine set to -javaagent:/Users/evgeny.mandrikov/.m2/repository/org/jacoco/org.jacoco.agent/0.8.3/org.jacoco.agent-0.8.3-runtime.jar=destfile=/private/tmp/j/target/jacoco.exec
    [INFO]
    [INFO] --- build-helper-maven-plugin:3.0.0:add-source (add-source) @ example ---
    [INFO] Source directory: /private/tmp/j/src/main/kotlin added.
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ example ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /private/tmp/j/src/main/resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ example ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 1 source file to /private/tmp/j/target/classes
    [INFO]
    [INFO] --- kotlin-maven-plugin:1.3.30:compile (compile) @ example ---
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ example ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /private/tmp/j/src/test/resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ example ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 1 source file to /private/tmp/j/target/test-classes
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ example ---
    [INFO] Surefire report directory: /private/tmp/j/target/surefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running ExampleTest
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.046 sec
    
    Results :
    
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO]
    [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ example ---
    [INFO] Building jar: /private/tmp/j/target/example-0.0.1-SNAPSHOT.jar
    [INFO]
    [INFO] --- jacoco-maven-plugin:0.8.3:report (default) @ example ---
    [INFO] Loading execution data file /private/tmp/j/target/jacoco.exec
    [INFO] Analyzed bundle 'example' with 2 classes
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  4.870 s
    [INFO] Finished at: 2019-04-22T15:41:31+02:00
    [INFO] ------------------------------------------------------------------------

    compila Kotlin e Java, esegue test con JaCoCo Java Agent e genera il seguente report nella directory target/site/jacoco

    report

    che contiene sia il codice Kotlin e Java.

Leave a Reply

Your email address will not be published. Required fields are marked *