테스트 그룹을 만들고 원하는 테스트 그룹만 테스트를 실행할 수 있는 기능.
@Tag
인텔리J에서 특정 태그로 테스트 필터링 하는 방법
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<groups>fast | slow</groups>
</configuration>
</plugin>
참고
package com.example.testingweb.validatingforminput;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// 이 애노테이션을 사용한 코드가 이 애노티에션 정보를 런타임까지도 유지를 해야한다는 설정
@Retention(RetentionPolicy.RUNTIME)
// 이 애노테이션을 어디에 쓸 수 있는가.
@Target(ElementType.METHOD)
@Test
@Tag("fast")
public @interface FastTest {
}
package com.example.testingweb.validatingforminput;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// 이 애노테이션을 사용한 코드가 이 애노티에션 정보를 런타임까지도 유지를 해야한다는 설정
@Retention(RetentionPolicy.RUNTIME)
// 이 애노테이션을 어디에 쓸 수 있는가.
@Target(ElementType.METHOD)
@Test
@Tag("slow")
public @interface SlowTest {
}
package com.example.testingweb.validatingforminput;
import org.junit.jupiter.api.*;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
class StudyTest {
@FastTest
@DisplayName("스터디 만들기")
void create_new_Study() {
Study actual = new Study(100);
assertThat(actual.getLimit()).isGreaterThan(0);
}
@SlowTest
@DisplayName("스터디 만들기 slow")
void create1_new_study_again() {
System.out.println("create1");
}