-
4. 바이트코드 조작프로그래밍언어/Java(중급) 2020. 3. 26. 17:13
코드 커버리지는 어떻게 측정할까?
- 코드 커버리지? 테스트 코드가 확인한 소스 코드를 얼마만큼을 Test했는지 확인한다.
pom.xml 플러그인 추가
<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.4</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin>
메이븐 빌드
- mvn clean verify
커버리지 만족 못할시 빌드 실패하도록 설정
<execution> <id>jacoco-check</id> <goals> <goal>check</goal> </goals> <configuration> <rules> <rule> <element>PACKAGE</element> <limits> <limit> <counter>LINE</counter> <value>COVEREDRATIO</value> <minimum>0.50</minimum> </limit> </limits> </rule> </rules> </configuration> </execution>
-
me.whiteship 이라는 패키지가 76% 커버리지
-
branches 50% Test
-
if문 분기문에서 일부만 테스트가 됨
-
14~15line 만 Test되었다.
방법
-
바이트 코드 에서 코드커버리지를 챙겨하는 부분을 갯수를 세논다 , 실행시에 line 몇개를 지나갔는지 카운팅하고 비교한다.
- yello(half), red(x), green(success)
-
바이트코드를 조작하여 포인터들을 심어 어딜 지나가는지 알수있다.
-
if문같은경우 두가지케이스 이상을 파악해야 한다.
'프로그래밍언어 > Java(중급)' 카테고리의 다른 글
6. Spring에서 바이트 코드 조작 활용 예 (0) 2020.03.26 5. 바이트코드 조작마술 (0) 2020.03.26 3. 클래스 로더 (0) 2020.03.26 2. JVM 구조 (0) 2020.03.26 1. JDK, JVM, JRE 이해하기 (0) 2020.03.26