I'm configuring Jacoco(version 0.8.3) unit test reporting for specific 
module in Gradle(version 6.0.1) project. Currently, I have basic java 
project structure, where I have in given module src and src/main, src/test 
repos with core code files and unit tests. 

This is my configuration in specific build.gradle file for given module:

  

    
  apply plugin: 'java'
        apply plugin: 'jacoco'
        
        jacoco {
          toolVersion = "0.8.3"
        }
        jacocoTestReport {
          reports {
            xml.enabled true
            html.enabled true
        
          }
        }
        jacocoTestCoverageVerification {
          violationRules {
            rule {
              limit {
                counter = 'LINE'
                value = 'COVEREDRATIO'
                value = 'COVEREDRATIO'
                minimum = 1.0
              }
            }
          }
        }
        sonarqube {
          properties {
            property "sonar.coverage.jacoco.xmlReportPaths", 
"build/customJacocoReportDir/test/jacocoTestReport.xml"
            property "sonar.java.binaries", "build/classes/java/main"
            property "sonar.java.test.binaries", "build/classes/java/test"
            property "sonar.sources", "src/main"
            property "sonar.tests", "src/test"
          }
        }


However, after launching jacocoTestReport, xml file with test results is 
generated but shows 0 unit test coverage, even when I have unit tests 
covering my classes. Unit test classes are also included in generated 
index.html file. 

This project has standalone gradle configuration for unit tests, I think 
problem may be there, I wasn't able to locate it. 
junit-test.gradle file:

    sourceSets.test.output.resourcesDir = file('build/classes/java/test/')
    
    configurations {
      testCompile {
        exclude group: 'junit'
        exclude group: 'org.aspectj'
        exclude group: 'org.hamcrest'
        exclude module: 'jsonassert'
        exclude module: 'jsr305'
      }
    }
    
    dependencies {
      testImplementation(
        // Junit 5
        'org.junit.jupiter:junit-jupiter-api',
        'org.junit.jupiter:junit-jupiter-params',
      )
    testRuntimeOnly(
        'org.junit.jupiter:junit-jupiter-engine',
      )
    }
    tasks.named('compileTestJava').configure {
      options.encoding = 'UTF-8'
      doFirst {
        moduleOptions {
          addReads = [(project.moduleName): 'org.junit.jupiter.api']
        }
      }
    }
    tasks.named('test').configure { Test test ->
    test.useJUnitPlatform {
        includeEngines 'junit-jupiter'
    //    scanForTestClasses false
        include "***/**/*Tests.class"
        include "****/**/*TestFactory.class"
        filter {
          failOnNoMatchingTests false
        }
    
      }
    test.testLogging {
      events "passed", "skipped", "failed"
     exceptionFormat TestExceptionFormat.FULL
    }
    test.reports {
      html.enabled = true
    }
    doFirst {
        moduleOptions {
          addReads = [(project.moduleName): 'org.junit.jupiter.api']
          addOpens = ['java.base/java.lang': 'spring.core']
        }
        def testJvmArgs = [
          '-ea',
          '-Dfile.encoding=utf-8',
          '-Dsun.jnu.encoding=utf-8',
          
'-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager',
          '-Duser.country=**',
          '-Duser.language=**',
          '-Duser.timezone=***,
    
        ]
        configurations.agent.files.each {
          testJvmArgs.add 1, "-javaagent:$it.path"
        }
        test.jvmArgs testJvmArgs
      }
    
    }


Thank you for your help. 





-- 
You received this message because you are subscribed to the Google Groups 
"JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jacoco/a2089b44-d614-4dc2-9254-a01e3f16550a%40googlegroups.com.

Reply via email to