@Test
@Tag("fast")
void test() {}
같은 Class 에 있지 않아도 같은 Tag expression 을 가지고 있으면 테스트가 실행된다.

<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<groups>fast</groups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>ci</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<groups>slow</groups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
mvnw.cmd clean install
# default profile
mvnw.cmd test
# ci profile
mvnw.cmd test -P ci
@Target(ElementType.METHOD) // 메서드 사용
@Retention(RetentionPolicy.RUNTIME) // 런타임까지 유지
@Tag("fast")
@Test
public @interface FastTest {}
@FastTest
@DisplayName("스터디 만들기 fast")
void create_new_study() {}
@SlowTest
@DisplayName("스터디 만들기 slow")
void create_new_study_again() {}