특정한 조건을 만족하는 경우?

특정한 OS, 특정한 자바 버전, 환경 변수, 시스템 변수에 따라 실행하거나 실행하지 말아야하는 복잡한 경우를 의미합니다.

특정한 조건을 만족하는 경우에 테스트를 실행하는 방법?

assumeTrue (조건)

import static org.junit.jupiter.api.Assumptions.assumeTrue; //...1

@Test
@DisplayName("로컬인 경우에만 테스트를 실행")
void create_new_study_1() {
    String test_env = System.getenv("TEST_ENV"); //...2
    System.out.println(test_env);
    assumeTrue("LOCAL".equalsIgnoreCase(test_env)); //...3

    Study study = new Study(10);
    assertThat(study.getLimit()).isGreaterThan(0);
}
  1. org.junit.jupiter.api.Assumptions.*
  2. System.getenv()
  3. equalsIgnoreCase

TEST_ENV 의 값이 LOCAL 이 아니면 다음 라인에 있는 테스트를 실행하지 않습니다.

Untitled

인텔리제이에서 환경 변수 TEST_ENV=LOCAL로 설정하면 제대로 실행되는 것을 볼 수 있습니다.

Untitled

<aside> ❗ 리눅스 환경 변수 설정


  1. 환경 변수 임시 적용(export)
$ export 환경변수명=값
  1. 환경 변수 영구 적용
/etc/bash.bashrc 파일 수정

저는 MacOS에서는 Z shell을 사용하고 있습니다.

그래서 vim ~/.zshrc 명렁어를 사용해서 .zshrc 파일에 환경 변수를 적용해주면 됩니다.

참고로 ~는 사용자의 홈 디렉토리를 의미하고 /는 절대경로를 의미합니다.

그리고 인텔리제이가 켜질 때 환경 변수를 불러오기 때문에 인텔리제이를 다시 켜지 않으면 변경한 환경 변수가 적용되지 않습니다.

  1. 환경 변수 확인
$ env
$ env | grep 환경변수명
  1. 환경 변수 해제
$ unset 환경변수명

</aside>