테스트 그룹을 만들고 원하는 테스트 그룹만 테스트를 실행할 수 있는 기능
@Tag("fast")
실행하는데 얼마 걸리지 않으며
로컬에서 실행을 해도 충분히 금방 결과를 볼 수 있는 경우 테스트
@Test
@DisplayName("스터디 만들기 fast")
@Tag("fast")
void create_new_study(){
Study study = new Study(100);
assertThat(study.getLimit()).isGreaterThan(0);
}
@Test
@DisplayName("스터디 만들기 slow")
@Tag("slow")
void create_new_study_again(){
System.out.println("create1");
}intelliJ에서 특정 태그로 테스트 필터링 또한 가능하다.
Apache Maven
JUnit
JUnit이 제공하는 Annotation들은 Meta Annotation으로 사용할 수 있다.
JUnit5 Annotation을 조합하여 custom tag를 만들 수 있다.
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Test
@Tag("fast")
public @interface FastTest {
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Test
@Tag("slow")
public @interface SlowTest {
}
@Retention : 이 어노테이션을 사용한 코드가 이 어노테이션 정보를 runtime까지도 유지해야한다는 설정
@Target : 이 어노테이션을 어디에 쓸 수 있는가, 메서드에 쓰도록 설정
@DisplayName("스터디 만들기 fast")
@FastTest
void create_new_study(){
Study study = new Study(100);
assertThat(study.getLimit()).isGreaterThan(0);
}
@DisplayName("스터디 만들기 slow")
@SlowTest
void create_new_study_again(){
System.out.println("create1");
}