반응형
바이트코드
class 파일(바이트 코드) 읽기 명령어
javap -c X xxx.class
바이트코드 조작
- 코드 커버리지는 어떻게 측정할까?
코드 커버리지? 테스트 코드가 확인한 소스 코드를 %
- JaCoCo를 써보자.
- https://www.eclemma.org/jacoco/trunk/doc/index.html
- http://www.semdesigns.com/Company/Publications/TestCoverage.pdf
pom.xml에 플러그인 추가
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.4</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal> <!-- java agent 추가 -->
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal> <!-- 리포트 기능 제공 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
메이븐 빌드
mvn clean verify
Green – Code is tested or covered.
Red – Code is not tested or covered.
Yellow – Code is partially tested or covered.
-> 이러한 커버리지 툴은 바이트 코드로!!
바이트 코드에 포인트를 심고, 바이트 코드를 조작하고.. 지나갈 때 마다 카운팅 정보를 넘겨 주고..
특정 커버리지 퍼센트를 만족 못할시 빌드 실패하도록 설정
<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>
반응형
'JAVA' 카테고리의 다른 글
Reflection (0) | 2019.09.29 |
---|---|
byte code 조작 (0) | 2019.09.28 |
Class Loader (0) | 2019.09.28 |
JVM (0) | 2019.09.28 |
JAVA, JVM, JDK, JRE (0) | 2019.09.27 |