You might be hitting this with Gradle:

https://github.com/vaskoz/core-java9-impatient/issues


Also are you trying to use Java modular projects? That's not working with the current plugin.


On 5/25/19 2:04 AM, Eduardo Mosqueira Rey wrote:
With Maven I managed to get the coverage data adding this plugin to the pom:

            <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>

The problem is that it forces the students to look under the hood in the project structure. Also I missed the branch coverage information. It seems to be counting only line coverage, as far as I know.

With Gradle I cannot even run the tests. I am not a Gradle user so maybe I missed something.
Here it is the output:

JAVA_HOME="C:\Program Files\Java\jdk-11.0.2"
cd C:\Users\Eduardo\Documents\NetBeansProjects\gradleproject1; C:\Users\Eduardo\.gradle\wrapper\dists\gradle-4.10.2-bin\cghg6c4gf4vkiutgsab8yrnwv\gradle-4.10.2\bin\gradle --configure-on-demand --rerun-tasks -x check test
Configuration on demand is an incubating feature.
> Task :compileJava
> Task :processResources NO-SOURCE
> Task :classes
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
Could not write standard input to Gradle Test Executor 1.
java.io.IOException: Se est cerrando la canalizacin
at java.base/java.io.FileOutputStream.writeBytes(Native Method)
at java.base/java.io.FileOutputStream.write(FileOutputStream.java:354)
at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81) at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142) at org.gradle.process.internal.streams.ExecOutputHandleRunner.forwardContent(ExecOutputHandleRunner.java:66) at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:51) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.base/java.lang.Thread.run(Thread.java:834)

> Task :test FAILED
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:513) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525) Caused by: java.lang.RuntimeException: Class java/lang/UnknownError could not be instrumented.FATAL ERROR in native method: processing of -javaagent failed

at org.jacoco.agent.rt.internal_c13123e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:140) at org.jacoco.agent.rt.internal_c13123e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:101) at org.jacoco.agent.rt.internal_c13123e.PreMain.createRuntime(PreMain.java:55)
at org.jacoco.agent.rt.internal_c13123e.PreMain.premain(PreMain.java:47)
... 6 more
Caused by: java.lang.NoSuchFieldException: $jacocoAccess
at java.base/java.lang.Class.getField(Class.java:2000)
at org.jacoco.agent.rt.internal_c13123e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
... 9 more
------------------------------------------------------------------------
*De:* Laszlo Kishalmi <laszlo.kisha...@gmail.com>
*Enviado:* sábado, 25 de mayo de 2019 1:49
*Para:* users@netbeans.apache.org
*Asunto:* Re: JaCoCoverage plugin

Hi!

Actually JaCoCo support is out-of-the box in NetBeans, the additional plugin was required for Ant Based projects and it is not maintained right now (AFAIK it still has to be contributed by Oracle to Apache)

So JaCoCo with Maven project do work though it require some configuration in the pom.xml.

I'd say the easiest way is to achieve it if you just create a new Gradle Project from the IDE: File > New Project > Java with Gradle > Java Application | Java Class Library

The new project will be created with Gradle's Jacoco plugin applied. NetBeans recognize that, so right clicking the project there will be a Code Coverage menu where you can enable the collection of the coverage results. From that point whenever some unit tests were executed the code coverage results would be updated.

on 5/24/19 3:54 PM, Eduardo Mosqueira Rey wrote:

Hi all,

I used in classroom the JaCoCoverage plugin with NetBeans 8.2 for the students to check the coverage of their tests.

It had an easy and straightforward installation and was very simple to use, ideal for newbies.

Nevertheless, the plugin is no longer maintained at it doesn’t work with NetBeans 11.0.

This year I want to migrate the classroom installation to Apache NetBeans but the lack of a coverage tool is an inconvenient.

Is there an easy way to install a Coverage tool (whatever) in NetBeans 11.0?

**easy to install** is an important requirement.

Any suggestion would be appreciated.

Many thanks,

-- Eduardo

Reply via email to