728x90
테스트 그룹을 만들고 원하는 테스트 그룹만 테스트를 실행할 수 있는 기능.입니다.
@Tag
- 테스트 메소드에 태그를 추가할 수 있다.
- 하나의 테스트 메소드에 여러 태그를 사용할 수 있다.
인텔리J에서 특정 태그로 테스트 필터링 하는 방법
Edit Configurations 를 눌러줍니다.
그 후의 +를 눌러 JUnit을 눌러서 JUnit을 추가해줍니다.
그 후의 Name 을 정해준후 Tags를 fast 를 적어서 @Tag가 fast 메소드들만 실행되게 해줍니다.
@Test
@DisplayName("스터디 만들기 ╯°□°)╯ fast")
@Tag("fast")
void create_new_study() {
Study actual = new Study(10);
assertEquals(actual.getLimit(), 10);
assertThat(actual.getLimit()).isGreaterThan(0);
}
@DisplayName("스터디 만들기 \uD83D\uDe31 slow")
@Test
@Tag("slow")
void create_new_study_again() {
System.out.println("create1");
}
실행하면 @Tag("fast") 해준 메소드만 실행이 됩니다.
CustomTag
위의 방법들도 좋지만 @Tag("fast") fast는 문자열이기 때문에 타입세이프하지 않습니다. 오타가 나면 원하는대로 동작하지 않을 수도 있습니다. 그래서 어노테이션을 만들어서 사용할 수 있습니다.
@FastTest
@Target(ElementType.METHOD) // 어디에쓸수있는지 메서드
@Retention(RetentionPolicy.RUNTIME) //런타임 까지 유지해야된다.
@Test
@Tag("fast")
public @interface FastTest {
}
이렇게 @FastTest를 정의해서 사용할 수 있습니다.
@FastTest
@Test
@DisplayName("스터디 만들기 ╯°□°)╯ fast")
void create_new_study() {
Study actual = new Study(10);
assertEquals(actual.getLimit(), 10);
assertThat(actual.getLimit()).isGreaterThan(0);
}
@SlowTest
@DisplayName("스터디 만들기 \uD83D\uDe31 slow")
@Test
void create_new_study_again() {
System.out.println("create1");
}
동일한 결과가 나옵니다.
728x90
댓글