// Checks code coverage of JUnit based tests. apply plugin: 'jacoco' jacoco { toolVersion = "0.8.3a" } test.finalizedBy jacocoTestReport check.dependsOn jacocoTestCoverageVerification // Only for purely JHipster/MapStruct generated classes. // Please do NOT add any self coded classes! // Keep in mind, git will blame you ;-) def jhipsterGeneratedClassesWithDecentCoverage = [ 'org.hostsharing.hsadminng.repository.CustomAuditEventRepository', 'org.hostsharing.hsadminng.service.ContactQueryService', 'org.hostsharing.hsadminng.service.UserService', 'org.hostsharing.hsadminng.service.CustomerContactQueryService' ] // Only for purely JHipster/MapStruct generated classes. // Please do NOT add any self coded classes! // Keep in mind, git will blame you ;-) def jhipsterGeneratedClassesWithLowCoverage = [ 'org.hostsharing.hsadminng.service.MailService', 'org.hostsharing.hsadminng.security.SecurityUtils', 'org.hostsharing.hsadminng.config.DefaultProfileUtil', 'org.hostsharing.hsadminng.config.WebConfigurer', 'org.hostsharing.hsadminng.web.rest.AccountResource', 'org.hostsharing.hsadminng.web.rest.errors.ExceptionTranslator', 'org.hostsharing.hsadminng.web.rest.errors.CustomParameterizedException', 'org.hostsharing.hsadminng.config.audit.AuditEventConverter', 'org.hostsharing.hsadminng.security.jwt.TokenProvider', 'org.hostsharing.hsadminng.aop.logging.LoggingAspect', 'org.hostsharing.hsadminng.HsadminNgApp', '*.*QueryService', '*.*Configuration', '*MapperImpl', '*Criteria', '*_' ] def specialExceptions = [ // lots of unreachable code due to error handling / verifications 'org.hostsharing.hsadminng.service.accessfilter.JSonAccessFilter', 'org.hostsharing.hsadminng.service.util.ReflectionUtil' ] jacocoTestCoverageVerification { violationRules { rule { element = 'CLASS' limit { counter = 'BRANCH' value = 'COVEREDRATIO' // Increasing the threshold is fine, decreasing is not. // Keep in mind, git will blame you ;-) minimum = 0.95 } excludes = jhipsterGeneratedClassesWithDecentCoverage + jhipsterGeneratedClassesWithLowCoverage + specialExceptions } rule { element = 'CLASS' limit { counter = 'BRANCH' value = 'COVEREDRATIO' minimum = 0.80 } includes = jhipsterGeneratedClassesWithDecentCoverage } rule { element = 'CLASS' limit { counter = 'LINE' value = 'COVEREDRATIO' minimum = 0.85 } includes = specialExceptions } } }