[Junit] @Tag로 여러 테스트 한방에 실행하기

Kai·2023년 1월 20일
0

스프링

목록 보기
5/18

🔥 발단


여러 테스트를 한번에

개발을 하던 중, 여러 테스트를 한번에 돌리고 싶은 상황이 왔다.
찾아보니까, junit-platform-suite 라이브러리에서 제공한느 @Suite어노테이션을 활용해서 구현할 수 있었다.

@Suite로 묶어서 테스트를 실행할 때는, @ExtendWith(JUnitPlatform.class) 가 붙은 테스트들만 대상이 된다고 한다.

근데 JUnitPlatform클래스를 찾을 수가 없었다...

구글링해보니 Junit5에서 얼마전에 JUnitPlatform클래스가 deprecated된 것을 확인했다.

'아니... 이거 맞아? 이렇게 손이 많이 간다고? 그지갖네 🤮'라는 생각이 들었다 🤭

@Tag의 발견

그러던 중, @Tag어노테이션을 활용해서 테스트를 그룹핑할 수 있다는 것을 알게 되었고, 아주 간단히 내가 원하던 것을 구현할 수 있었다. ㅎㅎ

지금부터 @Tag의 사용법을 알아보도록하자!


@Tag


Tag어노테이션은 JUnit에서 기본적으로 제공하는 어노테이션이니, JUnit만 설치가 되어 있으면 사용할 수 있다.

@Tag는 말그대로 테스트에 태깅을 함으로써 그룹화를 할 수 있게 해주는 어노테이션이다.

레포지토리와 관련된 테스트에는 @Tag("repository")와 같이 태깅을 할 수 있겠고, 사용자에 대한 테스트라면 @Tag("usr")와 같이 쓸 수 있다.

나는 현재는 모~든 테스트를 한번에 하고 싶어서, @Tag("app")이라는 태그를 모든 테스트 클래스에 붙여주었다.

그렇다면, 태그 별로 실행하는 것은 어떻게 할 수 있을까?

태그별로 테스트 실행하기

인텔리제이 기준으로 Run > Edit configurations를 눌러보면

이렇게 팝업창이 뜨게 된다.

여기서 기본적으로 생성되는 메인 테스트 클래스에 설정을 위와 같이 변경해주면 된다.
app은 내가 설정한 태그 이름이고, 각자가 설정한 태그 이름을 입력해주면 된다.

그러면 Run탭이 이렇게 변해있는 것을 확인할 수 있다.
Run 또는 Debug를 실행하면 정상적으로 테스트가 실행되는 것을 확인할 수 있다.


참고

0개의 댓글