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

특정한 OS, 자바 버전, 환경 변수, 시스템 변수에 따라 실행하거나 하지 말아야 한다면..

org.junit.jupiter.api.Assumptions.*

@Enabled___ 와 @Disabled___

EnableOnOs, EnabledOnJre, assumeTrue, asumingThat

class StudyTest {

    @Test
    @DisplayName("스터디 만들기")
    @EnabledOnOs({OS.LINUX, OS.MAC}) // OS에 특화된 TEST가 있다면
    @EnabledOnJre({JRE.JAVA_8, JRE.JAVA_9, JRE.JAVA_11})
    void create_new_Study() {
        String test_env = System.getenv("TEST_ENV");
        System.out.println(test_env);
        // LOCAL인 경우에만 다음에 있는 TEST를 실행, 환경변수 = TEST_ENV -> LOCAL로 설정 헀을 때,
        assumeTrue("LOCAL".equalsIgnoreCase(test_env));

        assumingThat("LOCAL".equalsIgnoreCase(test_env), () -> {
            System.out.println("local");
            Study actual = new Study(100);
            assertThat(actual.getLimit()).isGreaterThan(0);
        });
        assumingThat("hyungil".equalsIgnoreCase(test_env), () -> {
            System.out.println("hyungil");
            Study actual = new Study(10);
            assertThat(actual.getLimit()).isGreaterThan(0);
        });

    }

    @Test
    @DisabledOnOs(OS.LINUX)
    @EnabledOnOs(JRE.OTHER)
    void create1_new_study_again() {
        System.out.println("create1");
    }

EnabledIfEnvironmentVariable로 대체 가능

class StudyTest {

    @Test
    @DisplayName("스터디 만들기")
    @EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "local")
    void create_new_Study() {
        Study actual = new Study(100);
        assertThat(actual.getLimit()).isGreaterThan(0);

    }

    @Test
    @EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "hyungil")
    void create1_new_study_again() {
        System.out.println("create1");
    }