본문 바로가기

JAVA

Byte Code

반응형

바이트코드

class 파일(바이트 코드) 읽기 명령어

javap -c X xxx.class

바이트코드 조작

  1. 코드 커버리지는 어떻게 측정할까?

코드 커버리지? 테스트 코드가 확인한 소스 코드를 %

 

 

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