dependencies { testImplementation libs.junit.jupiter.api testImplementation libs.junit.jupiter.params testImplementation libs.hamcrest testRuntimeOnly libs.junit.jupiter.engine } test { useJUnitPlatform() failFast = false ignoreFailures = true jvmArgs '--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED', '--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED', '--add-exports=java.base/sun.nio.ch=ALL-UNNAMED', '--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED', '--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED', '--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED', '--add-opens=java.base/java.lang=ALL-UNNAMED', '--add-opens=java.base/java.lang.reflect=ALL-UNNAMED', '--add-opens=java.base/java.io=ALL-UNNAMED', '--add-opens=java.base/java.nio=ALL-UNNAMED', '--add-opens=java.base/java.util=ALL-UNNAMED' systemProperty 'java.util.logging.config.file', 'src/test/resources/logging.properties' systemProperty 'io.netty.tryReflectionSetAccessible', 'true' testLogging { events 'STARTED', 'PASSED', 'FAILED', 'SKIPPED' showStandardStreams = true } reports { html.required = false junitXml.outputLocation.set(layout.buildDirectory.dir("test-junit-xml")) } afterSuite { desc, result -> if (!desc.parent) { println "\nTest result: ${result.resultType}" println "Test summary: ${result.testCount} tests, " + "${result.successfulTestCount} succeeded, " + "${result.failedTestCount} failed, " + "${result.skippedTestCount} skipped" } } }