์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ํŠน์ง•3. ์ง€์› ํˆด

1. ๊ฐœ์š”[ํŽธ์ง‘]

JaCoCo๋Š” Java Code Coverage[1]๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํˆดํ‚ท์ด๋‹ค. Eclipse Public License ๋ผ์ด์„ ์Šค๋กœ ๋ฐฐํฌ๋˜๋ฉฐ EclEmma ์ดํด๋ฆฝ์Šค ํ”„๋กœ์ ํŠธ ์•„๋ž˜ EMMA์˜ ๋Œ€์•ˆ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.

2. ํŠน์ง•[ํŽธ์ง‘]

JaCoCo๋Š” line, branch coverage๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์‚ฌ์šฉํ•˜๋Š”๋ฐ์— ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•œ Clover์™€ Cobertura์™€๋Š” ๋‹ค๋ฅด๊ฒŒ JaCoCo๋Š” runtime์— ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Java agent ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, report ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ TCP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์›๊ฒฉ JVM์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ๋ถ„์‚ฐ๋œ Code ํ™˜๊ฒฝ์—์„œ์˜ report๋“ค์„ ํ†ตํ•ฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์–ด Intergration Testing์— ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. Cobertura์™€ Emma์™€ ์ฐจ๋ณ„์ ์œผ๋กœ Java 7๊ณผ 8์„ ์ง€์›ํ•˜๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

3. ์ง€์› ํˆด[ํŽธ์ง‘]

  • SonarQube JaCoCo ํ”Œ๋Ÿฌ๊ทธ์ธ
  • EclEmma Eclipse Code Coverage Plugin
  • Jenkins JaCoCo ํ”Œ๋Ÿฌ๊ทธ์ธ
  • Gradle JaCoCo ํ”Œ๋Ÿฌ๊ทธ์ธ
  • NetBeans JaCoCo Support
  • IntelliJ IDEA JaCoCo Suport
[1] ํŠน์ • ํ”„๋กœ์‹œ์ €์˜ ์ฝ”๋“œ๊ฐ€ ์ „๋ถ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š”์ง€, ๋˜๋Š” ์กฐ๊ฑด๋ฌธ ๋ธ”๋Ÿญ์—์„œ ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์ˆ˜ํ–‰์ด ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ๋“ฑ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.