먼저 JS Test Driver(JDT)의 지난 글 참조.

오늘은 JDT의 커버리지 사용기를 소개 할까 한다. 오픈은 10월 말경에 한것 같다.

JDT의 커버리지 툴은 JDT의 플러그인 형식으로 지원 하며 ANTLR을 이용해서 자바스크립트 문법을 분석하여 만들었다. (폴더가 plugins인걸로 봐서 다른 플러그인들도 개발할 예정인듯)

현재 지원 범위
  1. 향후 어떨지는 모르지만 현재 지원하는 커버리지는 라인커버리지만 지원
  2. 기존의 이클립스 플러그인에서 사용은 못하고 커멘드로만 사용가능(전에 방식을 봐서는 향후 지원할 듯)
  3. 결과는 콘솔로 파일당 라인 커버리지를 확인 가능하고 dat파일로 export할수 있으며 LCOV을 이용하여 비주얼 하게 볼수 있음.
  4. 일부 파일을 제외하는 기능 없이 모든 파일의 커버리지를 파일당 측정.(가능하다고는 메일링에 그러는데 안되는것 같음)

사용방법은 간단하다.
먼저 원글을 보면 나와있는데 간단히 알아 보면

전에 적은 JDT사용기 처럼 셋팅 후
  1. JsTestDriver.jar가 있는 폴더에 plugins 폴더를 만든다.
  2. coverage.jar를 다운 받아서 plugins 폴더에 넣는다.
  3. 기존에 만든 conf파일에 커버리지에 필요한 정보를 추가로 넣는다.(jar경로는 자신에 맞게 수정)
  4. 서버 띄우고 capture 한다.
  5. 기존과 똑같이 커멘드로 실행 시키며 된다.
위와 같이 진행을 하면 아래와 같은 결과를 받을수 있다.

사용자 삽입 이미지


위에 이미지에서 볼수 있듯이 test의 대한 결과를 보여주고 test가 100%일 때
하단에 각 파일에 대한 라인 커버리지율을 보여 주고 있다.

장점으로는
  1. test, coverage를 별다른 설치없이 한번에 볼 수 있다는 것은 정말 큰 장점이다.(IDE에선 성능을 볼수 있다. 전에 말한 JDT의 기능은 이제 거의 다 개발한듯.)
  2. 데이터를 export할수 있어 외부 툴하고도 연동하기 쉽게 되어 있다.(export한 데이터를 허드슨과 연동 하는 등)
단점으로는
  1. 향후 어떨지는 모르지만 아직 까지 파일 당 라인 커버리지만 지원하는건 큰 메리트가 없다.(적어도 함수당 라인 커버리지를 보여주거나 clover처럼 브랜치와 복잡도도 보여주면 좋을것 같다.구문 분석을 했기 때문에 항후 가능할것 같다.)
  2. 보기 힘든 정보.(향후 플러그인과 합쳐져서 비쥬얼 하게 보여 준다면 좋을것 같다)
  3. 느린 속도.(버그 인지 어쩔수 없는지 모르지만 여러 브라우져에서 테스트 할때 같은 js파일을 매번 분석해서 파일이 많아지면 굉장히 느릴것 같다)

결론은 아직 까지는 부족하지만 지금껏 해왔던 행보로는 충분히 좋아 질것 같다.
자바스크립트 커버리지툴은 내가 알기로 현재 JSCoverage 밖에 없는데 또 다른 커버리지 툴이 생겨서 좋다.

 

Posted by 전용우

댓글을 달아 주세요