웹 개발

java test plugin - Infinitest

노루아부지 2020. 12. 26. 23:56

Infinitest는 지속적인 테스트를 해주는 Eclipse와 IntelliJ 플러그인입니다.

 

Infinitest는 소스 코드 변경을 감지해서 영향도가 있는 테스트를 수행합니다.

 

github: http://infinitest.github.io
user guide: http://infinitest.github.io/doc/user_guide.html

 

 

Eclipse에 설치방법

  1. Help > Eclipse Marketplace 열기
  2. infinitest 검색 및 설치

 

 

 

 

설정 파일

 

infinitest.filters 파일을 프로젝트 루트 디렉터리(working directory)에 추가합니다.

Test로 끝나는 테스트 파일
.*Test

Inner Classes
.*\$.*

package 안에 있는 테스트
com\.mycompany\.mypackage\..*

모든 테스트
.*

 

 

 

 

Preferences

 

설치하고 나면 Preferences에 Infinitest가 추가됩니다.

(Window > Preferences > Infinitest)

 

 

  • Continuously Test 체크를 해지하면, 테스트를 수행하지 않습니다.
  • Slow Test Warning은 기본값이 500이고, 이 시간이 넘어가게 되면 테스트에 warning을 표시합니다.

 

테스트 수행

 

아래와 같은 클래스 및 메서드가 있다고 가정합니다.

public class StringUtil {
  public static String toString(Object v) {
    if(v == null) {
	  return "";
    }
		
    return v.toString();
  }
}

 

이 메서드는 Object 객체를 parameter로 받아서, null일 경우에는 빈 문자열인 ""을 리턴하고 null이 아닐 경우에는 String 객체로 변환하여 리턴합니다.

 

위의 toString() 메서드를 테스트 함수로 만들어 봤습니다.

 

import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;

public class StringUtilTest {
  @Test
  public void toStringTest() {
    Object a = null;
		
      assertEquals(StringUtil.toString(a), "");
      assertEquals(StringUtil.toString(a), "1");
  }
}

 

위 테스트 코드의 결과는 첫 번째는 성공, 두 번째는 실패입니다.

Continuously Test 옵션이 체크되어 있는 상태에서 StringUtilTest 클래스 파일을 저장하면 자동으로 테스트를 수행해 줄 뿐만 아니라 Problems에도 에러가 표시되고, 프로그램 코드 상에도 에러로 표시됩니다.

 

 

심지어, StringUtilTest 클래스 파일이 아니라 StringUtil 클래스를 저장해도 StringUtilTest 클래스의 Test가 진행이 됩니다.

단, 프로젝트에 컴파일 에러가 있으면 Infinitest가 비활성화되어 테스트가 수행되지 않습니다.

 

참고로, 왼쪽 하단에는 테스트 수행 여부가 표시됩니다.

  • Green : 테스트 성공
  • Yellow : 수행 테스트가 없음 또는 Infinitest 비활성화
  • Red : 테스트 실패

 

 

IntelliJ에서 Infinitest 설치

 

1. 단축키 Ctrl + Alt  + S를 입력하여 Settings에 들어갑니다.

2. Plugins에서 infinitest를 입력한 후 install 버튼을 클릭하여 설치 후 IntelliJ를 재시작합니다.

 

 

3. 다시 Settings에 들어간 후 Build, Execution, Deployment > Compiler 메뉴에 들어갑니다.

4. Build project automatically를 체크합니다.

- 코드 수정 시, 모듈이 이를 관찰하고, 테스트를 진행하기 위해서는 이 옵션이 설정되어 있어야 합니다.

 

5. 모듈 추가를 위해 File > Project Structure 메뉴에 들어갑니다.

6. Modules 메뉴를 클릭합니다.

7. test 폴더 선택 후 + 버튼을 클릭합니다.

 

 

8. 모듈의 목록 중 Infinitest를 선택하여 추가합니다.

 

9. 추가가 완료되면 아래와 같이 변경됩니다.

 

 

 

IntelliJ에서의 infinitest 결과

 

IntelliJ에서는 Eclipse와는 다르게 프로그램 내부에  에러 표시는 되지 않습니다. 대신, 프로그램 제일 하단에 아래 이미지와 같이 test 탭이 생성되고, 자동으로 테스트 진행 후, 에러가 발생하면 빨간색 아이콘으로 변경됩니다.

이후, 아이콘을 클릭하면 상세 에러 메시지가 표시됩니다.

 

 

 

 

Reference

infinitest.github.io/doc/index

728x90
loading