이클립스에서 JUnit4 테스트의 특정 테스트메소드만 실행하기

가끔 하는 뒷북치기. :)

이게 언제부터 되는 것인지는 모르겠다. 아무튼 우연히 JUnit으로 만든 테스트코드를 실행하다가 특정 테스트메소드만 실행하는 것이 가능하다는 것을 알게되었다.

JUnit4의 기본 TestRunner는 클래스단위로 테스트를 수행한다. 해당 클래스의 모든 @Test메소드를 실행한다. 경우에 따라 특정 테스트메소드를 제외하고 싶다면 @Ignore를 부여해서 임시로 해당 테스트메소드가 실행되지 않게 할 수는 있다.

이클립스는 테스트 실행코드를 만들지 않아도, 테스트스윗을 만들지 않아도 JUnit창이나 소스에서 바로 Run as JUnit Test를 통해서 하나의 테스트클래스나 한 패키지 아래의 모든 테스트를 실행할 수 있다.

그런데 만약 테스트메소드가 많은 테스트에서 단 한개의 테스트만 달랑 실행하고 싶다면 다음과 같이 하면 된다.

  1. 실행하고 싶은 테스트메소드의 이름으로 커서를 가져간다.
  2. Run as JUnit Test로 테스트를 실행한다. (단축키 Shift-Alt-X + T 또는 컨텍스트 메뉴나 메인 메뉴에서 Run > JUnit Test로 실행)

이런 편한 기능이 있었을 수가.

이래서 이클립스의 Help Contents를 가끔 읽어줘야 한다. Contents의 각 대표항목의 Tips and tricks항목만 읽어도 충분하다. 그것만 해도 워낙 양이 많아서 그렇지..  getter/setter를 자동으로 만들어주는 기능이 Shift-Alt-S + R을 쓰지 않아도, 필드 이름에 가서 ctrl-1만 해도 된다는 것도 어제 알았다.  ctrl-1(quick-fix)는 에러가 났을 때 수정하는 용도로 쓰는 것 외에도 상당히 많은 영리한 기능을 적용하는데 사용할 수 있다. 이것만 잘써도 코드 작성 속도가 두배쯤 빨라질 수도 있을 듯.

참, 내가 쓰는 이클립스 버전은 3.5이고 JUnit은 4.6이다.

11 Comments

July 23rd, 2009 at 8:29 pm

엇… 게터 세터 Ctrl + 1로 만드는건 몰랐네요.
한번에 전부 다 생성할 때 말고 나중에 추가한 필드에 대한 게터세터 만들 때 쓰면 되겠군요.
우왕.. 굳!

TobyJuly 23rd, 2009 at 8:56 pm

썬/ 그렇다면 단일 테스트 메소드 실행은 알았단 말인가!

July 23rd, 2009 at 9:56 pm

그건 예전에 박재성 형님 블로그에서 봤어요.
http://javajigi.tistory.com/192

영회July 24th, 2009 at 9:49 am

이클립스 3.4 버전에서 JUnit 3.x 테스트도 되거덩~

TobyJuly 24th, 2009 at 10:10 am

영회/ 나만 몰랐단 말인가!

아시리스August 4th, 2009 at 4:12 pm

반갑습니다..^^ 지나가는 길에 잠시 들렀습니다. 언제나 좋은 자료들이..^^

JUnit에서는 @Test를 그냥 주석으로 막아버려도 실행이 되지 않습니다.
@Ignore조차 쓰기 귀찮으실때 강추합니다..^^

benelogAugust 4th, 2009 at 8:14 pm

Shift-Alt-X + T 대신 F11도 메소드 위에서 누르니까 그 메서드만 실행되더군요; (F11은 전 오늘 처음 알았습니다;)

TobyAugust 4th, 2009 at 11:14 pm

benelog/ 저는 F11누르면 디버거가 뜹니다. -_-; 혹시 단축키 설정이 다른 맥용 이클립스인가요?

benelogAugust 5th, 2009 at 8:07 am

아, Ctrl + F11입니다;F11은 디버거이고, Ctrl + F11이 실행..

TobyAugust 5th, 2009 at 8:48 am

benelog/ Ctrl+F11은 Run명령 같은데요? 최근에 실행한 것을 커서 위치에 상관없이 그대로 다시 반복해주기만 하는.

benelogAugust 5th, 2009 at 12:31 pm

제 PC(Eclipse Version: 3.4.2)에서는 커서 위치에 따라 다르게 테스트가 실행되어서 다그런줄 알았는데 아닌가보네요 ^^; 찾아보니 현재 편집중인 resource에 대해서 Project properties에서 Run/Debug Setting에서 해 놓은데로 실행이 되는것 같네요. 그게 Junit에서 메소드 단위로도 인식이 가능하고, 커서위치도 인식하는 것 같기는한데 안 그렇게 되는 경우도 있나봅니다;

암튼 , Ctrl+ F11이 설정을 타는 것이라면 Shift-Alt-X + T 가 더 낫겠네요~ ^^;

Leave a comment

Your comment