-
Notifications
You must be signed in to change notification settings - Fork 1
/
test.gradle
90 lines (82 loc) · 2.17 KB
/
test.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
jacoco {
toolVersion = '0.8.6'
}
test {
useJUnitPlatform()
finalizedBy 'jacocoTestReport'
}
def jacocoExclude = [
'**/RealWorldApplication.class',
'**/*Exception.class',
'**/*Handler.class',
'**/*Config.class',
'**/Response*.class',
'**/Request*.class',
'**/*Fixture.class',
'**/*Authentication*.class',
'**/*Authorization*.class',
'**/Q*.class',
'**/*Context*.class'
]
jacocoTestReport {
reports {
html.enabled true
xml.enabled true
csv.enabled false
}
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it, exclude: jacocoExclude)
}))
}
finalizedBy 'jacocoTestCoverageVerification'
}
jacocoTestCoverageVerification {
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it, exclude: jacocoExclude)
}))
}
violationRules {
// 전체
rule {
// 해당 프로젝트의 최소 커버리지
limit {
minimum = 1.00
}
}
// 패키지
rule {
element = 'PACKAGE'
limit {
counter = 'CLASS'
value = 'COVEREDRATIO'
maximum = 1.00
}
}
// 클래스
rule {
// rule을 체크할 단위는 Class
element = 'CLASS'
// 브랜치 커버리지를 최소한 90% 만족
limit {
// 조건문 등의 분기 수
counter = 'BRANCH'
value = 'COVEREDRATIO'
maximum = 1.00
}
// 라인 커버리지를 최소한 100% 만족
limit {
counter = 'INSTRUCTION'
value = 'COVEREDRATIO'
minimum = 1.00
}
// 빈 줄을 제외한 코드의 라인수를 최대 200라인으로 제한
limit {
counter = 'INSTRUCTION'
value = 'TOTALCOUNT'
maximum = 300
}
}
}
}