hudson - JUnit 테스트 추가하기
- Development/Tools
- 2010. 7. 7.
소스의 품질을 높이기 위해, Junit을 사용하여 테스트를 자동화 하자.
본 포스트에서는 hudson에 junit 테스트를 태스크로 선언하여 빌드시 테스트를 실시하고, 그 결과를 hudson으로 리포트 하도록 설정하고자 한다.
hudson에 등록한 프로젝트로부터 configure를 설정하면, 하단에
와 같이 Junit 테스트 결과를 리포트하겠다는 항목이 있다.
이 기능을 사용하기 위해, 기존에 선언한 build.xml (ant script)에 Junit 테스트 컴파일/ 수행을 하도록 추가할 것이다.
물론, 본인이 작성한 코드를 기반으로 Junit 코드들이 작성되어 있어야 한다.
JUnit 테스트를 수행하고 리포트를 생성하기 위해, 기존에 작성한 build.xml을 다음과 같이 task를 추가한다.
test-compile task는 다음과 같다.
참고) 위의 task를 추가하면서 설정한 환경 변수 등은 posting에서 제외하였음
이와 같이 설정하면, hudson에 연동된 프로젝트 task로 기본 소스 컴파일 및 테스트 코드의 실행/ 리포트를 생성하게 된다.
Hudson/Configure에서 JUnit의 report를 입력하는 곳에 "프로젝트명/report/junit/TEST*.xml "의 형태로 입력하고, 저장한다.
다음 빌드 후에, Test Result라는 항목을 왼쪽 메뉴에서 발견할 수 있다.
Test Result를 클릭하면, 테스트 케이스 및 그 결과를 상세하게 볼 수 있을 것이다.
(아직은 초기 예제로 올렸으므로 거의 모두 실패 -_-)
이로써, Hudson에 JUnit 테스트를 연동하고, test report까지 생성하도록 하였다.
이제, 대쉬보드에는 다음과 같은 테스트 결과가 나타날 것이다.
그런데, 이 트렌드는
그런데, 테스트를 자동으로 수행하지만 이 테스트들이 얼마나 의미 있는 테스트인지는 단순히 테스트의 개수만으로는 알 수 없을 것이다. 즉, 테스트 케이스의 개수가 아니라, 테스트 케이스가 실제 소스의 어느 정도를 테스트할 수 있는지 coverage를 확인해야 보다 의미있는 테스트가 될 것이다.
다음에는 Emma를 적용하여, 테스트의 coverage를 측정하도록 하는 설정을 할 것이다.
본 포스트에서는 hudson에 junit 테스트를 태스크로 선언하여 빌드시 테스트를 실시하고, 그 결과를 hudson으로 리포트 하도록 설정하고자 한다.
hudson에 등록한 프로젝트로부터 configure를 설정하면, 하단에
와 같이 Junit 테스트 결과를 리포트하겠다는 항목이 있다.
이 기능을 사용하기 위해, 기존에 선언한 build.xml (ant script)에 Junit 테스트 컴파일/ 수행을 하도록 추가할 것이다.
물론, 본인이 작성한 코드를 기반으로 Junit 코드들이 작성되어 있어야 한다.
JUnit 테스트를 수행하고 리포트를 생성하기 위해, 기존에 작성한 build.xml을 다음과 같이 task를 추가한다.
test-compile task는 다음과 같다.
test task는 다음과 같다.
참고) 위의 task를 추가하면서 설정한 환경 변수 등은 posting에서 제외하였음
이와 같이 설정하면, hudson에 연동된 프로젝트 task로 기본 소스 컴파일 및 테스트 코드의 실행/ 리포트를 생성하게 된다.
Hudson/Configure에서 JUnit의 report를 입력하는 곳에 "프로젝트명/report/junit/TEST*.xml "의 형태로 입력하고, 저장한다.
다음 빌드 후에, Test Result라는 항목을 왼쪽 메뉴에서 발견할 수 있다.
Test Result를 클릭하면, 테스트 케이스 및 그 결과를 상세하게 볼 수 있을 것이다.
(아직은 초기 예제로 올렸으므로 거의 모두 실패 -_-)
이로써, Hudson에 JUnit 테스트를 연동하고, test report까지 생성하도록 하였다.
이제, 대쉬보드에는 다음과 같은 테스트 결과가 나타날 것이다.
그런데, 이 트렌드는
- 몇 개의 테스트 케이스를 수행하는가?
- 그 중 몇 개가 성공이고, 몇 개가 실패인가? (그 변화 추이는?)
그런데, 테스트를 자동으로 수행하지만 이 테스트들이 얼마나 의미 있는 테스트인지는 단순히 테스트의 개수만으로는 알 수 없을 것이다. 즉, 테스트 케이스의 개수가 아니라, 테스트 케이스가 실제 소스의 어느 정도를 테스트할 수 있는지 coverage를 확인해야 보다 의미있는 테스트가 될 것이다.
다음에는 Emma를 적용하여, 테스트의 coverage를 측정하도록 하는 설정을 할 것이다.
'Development > Tools' 카테고리의 다른 글
hudson - FindBugs 연동하기 (0) | 2010.07.21 |
---|---|
hudson - javadoc 생성하기 (0) | 2010.07.20 |
hudson - emma와 연동하기 (2/2) (0) | 2010.07.19 |
hudson - emma와 연동하기 (1/2) (0) | 2010.07.16 |
hudson - 빌드 자동화 설정하기 (0) | 2010.07.01 |
hudson - build 스크립트 작성하기 (IDE로부터 build 스크립트 분리) (0) | 2010.07.01 |
hudson - 프로젝트 생성하기 (0) | 2010.06.26 |
무료 SVN - www.unfuddle.com 화면 구성 소개 (0) | 2010.06.20 |