테스트 그룹을 만들고 원하는 테스트 그룹만 테스트를 실행할 수 있는 기능.

@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");
    }