diff --git a/build.gradle b/build.gradle index ca652bb9c..11c1eabd2 100644 --- a/build.gradle +++ b/build.gradle @@ -3,8 +3,12 @@ plugins { id 'org.springframework.boot' version '3.3.5' id 'io.spring.dependency-management' version '1.1.6' id "org.sonarqube" version "5.1.0.4882" + id "jacoco" } + + + group = 'com' version = '0.0.1-SNAPSHOT' @@ -24,12 +28,103 @@ repositories { mavenCentral() } +jacoco { + toolVersion = "0.8.8" +} + +def QDomains = ["**/Q*"] +def jacocoExcludePatterns = [ + "**/*Application*", + "**/*Config*", + "**/*Exception*", + "**/*Request*", + "**/*Response*", + "**/*Dto*", + "**/*Interceptor*", + "**/*Filter*", + "**/*Resolver*", + "**/*Entity*", + "**/test/**", + "**/resources/**", + "**/domain/**" +] +def combinedExcludePatterns = jacocoExcludePatterns + QDomains + +jacocoTestCoverageVerification { + violationRules { + rule { + enabled = true + element = 'CLASS' + + limit { + counter = 'LINE' + value = 'COVEREDRATIO' + minimum = 0.60 + } + + limit { + counter = 'BRANCH' + value = 'COVEREDRATIO' + minimum = 0.60 + } + + } + } +} + +def jacocoDir = layout.buildDirectory.dir("reports/") + +jacocoTestReport { + dependsOn test + reports { + html.required.set(true) + xml.required.set(true) + csv.required.set(true) + html.destination jacocoDir.get().file("jacoco/index.html").asFile + xml.destination jacocoDir.get().file("jacoco/index.xml").asFile + csv.destination jacocoDir.get().file("jacoco/index.csv").asFile + } + + afterEvaluate { + classDirectories.setFrom( + files(classDirectories.files.collect { + fileTree(dir: it, + excludes: [ + "**/*Application*", + "**/*Config*", + "**/*Exception*", + "**/*Request*", + "**/*Response*", + "**/*Dto*", + "**/jwt/**", + "**/*Interceptor*", + "**/*Filter*", + "**/*Resolver*", + "**/*Entity*", + "**/test/**", + "**/resources/**", + "**/domain/**" + ] + QDomains) + }) + ) + } + finalizedBy jacocoTestCoverageVerification +} + + + sonar { properties { property "sonar.projectKey", "prgrms-web-devcourse-final-project_WEB1_1_Bongdari_BE" property "sonar.organization", "prgrms-web-devcourse-final-project" property "sonar.host.url", "https://sonarcloud.io" + property 'sonar.sources', 'src' + property 'sonar.language', 'java' + property 'sonar.test.exclusions', jacocoExcludePatterns.join(',') + property 'sonar.test.inclusions', '**/*Test.java' + property 'sonar.java.coveragePlugin', 'jacoco' + property 'sonar.coverage.jacoco.xmlReportPaths', jacocoDir.get().file("jacoco/index.xml").asFile } } @@ -64,4 +159,9 @@ dependencies { tasks.named('test') { useJUnitPlatform() + finalizedBy 'jacocoTestReport' } + + + + diff --git a/src/main/java/com/somemore/Center.java b/src/main/java/com/somemore/domain/Center.java similarity index 96% rename from src/main/java/com/somemore/Center.java rename to src/main/java/com/somemore/domain/Center.java index 88cf7a05c..9c2dddbca 100644 --- a/src/main/java/com/somemore/Center.java +++ b/src/main/java/com/somemore/domain/Center.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/somemore/CommunityBoard.java b/src/main/java/com/somemore/domain/CommunityBoard.java similarity index 94% rename from src/main/java/com/somemore/CommunityBoard.java rename to src/main/java/com/somemore/domain/CommunityBoard.java index 01513368b..d742fb8c5 100644 --- a/src/main/java/com/somemore/CommunityBoard.java +++ b/src/main/java/com/somemore/domain/CommunityBoard.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/somemore/CommunityComment.java b/src/main/java/com/somemore/domain/CommunityComment.java similarity index 94% rename from src/main/java/com/somemore/CommunityComment.java rename to src/main/java/com/somemore/domain/CommunityComment.java index de0706de1..461290a62 100644 --- a/src/main/java/com/somemore/CommunityComment.java +++ b/src/main/java/com/somemore/domain/CommunityComment.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/somemore/InterestCenter.java b/src/main/java/com/somemore/domain/InterestCenter.java similarity index 90% rename from src/main/java/com/somemore/InterestCenter.java rename to src/main/java/com/somemore/domain/InterestCenter.java index 7c2c6c3f6..1009d8336 100644 --- a/src/main/java/com/somemore/InterestCenter.java +++ b/src/main/java/com/somemore/domain/InterestCenter.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/somemore/Location.java b/src/main/java/com/somemore/domain/Location.java similarity index 94% rename from src/main/java/com/somemore/Location.java rename to src/main/java/com/somemore/domain/Location.java index 65a41af32..89af0623f 100644 --- a/src/main/java/com/somemore/Location.java +++ b/src/main/java/com/somemore/domain/Location.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/somemore/Note.java b/src/main/java/com/somemore/domain/Note.java similarity index 96% rename from src/main/java/com/somemore/Note.java rename to src/main/java/com/somemore/domain/Note.java index 4d27d4556..2dc2ccfd1 100644 --- a/src/main/java/com/somemore/Note.java +++ b/src/main/java/com/somemore/domain/Note.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/somemore/Notification.java b/src/main/java/com/somemore/domain/Notification.java similarity index 94% rename from src/main/java/com/somemore/Notification.java rename to src/main/java/com/somemore/domain/Notification.java index b182879bd..d058f3402 100644 --- a/src/main/java/com/somemore/Notification.java +++ b/src/main/java/com/somemore/domain/Notification.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/somemore/RecruitBoard.java b/src/main/java/com/somemore/domain/RecruitBoard.java similarity index 97% rename from src/main/java/com/somemore/RecruitBoard.java rename to src/main/java/com/somemore/domain/RecruitBoard.java index 62665b9e5..d39628f83 100644 --- a/src/main/java/com/somemore/RecruitBoard.java +++ b/src/main/java/com/somemore/domain/RecruitBoard.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/somemore/Review.java b/src/main/java/com/somemore/domain/Review.java similarity index 94% rename from src/main/java/com/somemore/Review.java rename to src/main/java/com/somemore/domain/Review.java index 0cd372468..89434c2c8 100644 --- a/src/main/java/com/somemore/Review.java +++ b/src/main/java/com/somemore/domain/Review.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/somemore/Volunteer.java b/src/main/java/com/somemore/domain/Volunteer.java similarity index 97% rename from src/main/java/com/somemore/Volunteer.java rename to src/main/java/com/somemore/domain/Volunteer.java index 396324e10..d32c473a9 100644 --- a/src/main/java/com/somemore/Volunteer.java +++ b/src/main/java/com/somemore/domain/Volunteer.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/somemore/VolunteerManagement.java b/src/main/java/com/somemore/domain/VolunteerManagement.java similarity index 94% rename from src/main/java/com/somemore/VolunteerManagement.java rename to src/main/java/com/somemore/domain/VolunteerManagement.java index e57f392a2..162046a83 100644 --- a/src/main/java/com/somemore/VolunteerManagement.java +++ b/src/main/java/com/somemore/domain/VolunteerManagement.java @@ -1,4 +1,4 @@ -package com.somemore; +package com.somemore.domain; import jakarta.persistence.*; import lombok.Getter;