ALM/Test Automation

Cobertura를 이용한 커버러지 테스트시 주의할 사항

Terry Cho 2008. 1. 17. 18:02
서버쪽에서 Cobertura를 이용한 커버러지 분석을 할때
주의할점은

Cobertura는 기본적으로 ASM을 이용하여, 테스트를 진행할 코드에 커버러지 분석 코드를 삽입하는 방식이다. (AOP와는 다르게 STATIC한 방식을 사용)
그렇기 때문에, Instrumented 된 코드가 반드시 실행되도록 클래스패스에 삽입 하거나 또는 패키징 할때 Instrumented 되지 않은 코드를 WEB-APP에 먼저 복사한후 그 다음에 Instrumented된 코드를 복사하여 Overwrite가 되게 해야 한다.

그리고, Cobertura는 커버러지 분석한 정보를 메모리에 담아 놨다가 서버가 shutdown될 당시에 한꺼번에 파일에 쓰기 때문에 메모리 요구량이 높을 수 있다.
그래서 각 단위 테스트마다 리스타트를 해서 메모리가 오버 되지 않게 유지 해야 한다.

기동 스크립트에서는
JAVA에 -D 옵션으로 -Dnet.sourceforge.cobertura.datafile=파일명.ser 로 지정하고
Cobertura에서 사용하는 파일들 corbertura.jar, asm, asm-tree, jakarta-oro.. jar들을 클래스 패스에 삽입해야 한다.

이렇게 하고 Instrumented된 코드를 수행하면, (비단 JUnit이 아니더라도) 수행한 내역을 *.ser 파일에 저장하게된다.