개발을 하던 중, 여러 테스트를 한번에 돌리고 싶은 상황이 왔다.
찾아보니까, junit-platform-suite
라이브러리에서 제공한느 @Suite
어노테이션을 활용해서 구현할 수 있었다.
@Suite
로 묶어서 테스트를 실행할 때는, @ExtendWith(JUnitPlatform.class)
가 붙은 테스트들만 대상이 된다고 한다.
근데 JUnitPlatform
클래스를 찾을 수가 없었다...
구글링해보니 Junit5에서 얼마전에 JUnitPlatform
클래스가 deprecated된 것을 확인했다.
'아니... 이거 맞아? 이렇게 손이 많이 간다고? 그지갖네 🤮'라는 생각이 들었다 🤭
그러던 중, @Tag
어노테이션을 활용해서 테스트를 그룹핑할 수 있다는 것을 알게 되었고, 아주 간단히 내가 원하던 것을 구현할 수 있었다. ㅎㅎ
지금부터 @Tag
의 사용법을 알아보도록하자!
Tag어노테이션은 JUnit에서 기본적으로 제공하는 어노테이션이니, JUnit만 설치가 되어 있으면 사용할 수 있다.
@Tag는 말그대로 테스트에 태깅을 함으로써 그룹화를 할 수 있게 해주는 어노테이션이다.
레포지토리와 관련된 테스트에는 @Tag("repository")
와 같이 태깅을 할 수 있겠고, 사용자에 대한 테스트라면 @Tag("usr")
와 같이 쓸 수 있다.
나는 현재는 모~든 테스트를 한번에 하고 싶어서, @Tag("app")
이라는 태그를 모든 테스트 클래스에 붙여주었다.
그렇다면, 태그 별로 실행하는 것은 어떻게 할 수 있을까?
인텔리제이 기준으로 Run > Edit configurations를 눌러보면
이렇게 팝업창이 뜨게 된다.
여기서 기본적으로 생성되는 메인 테스트 클래스에 설정을 위와 같이 변경해주면 된다.
app
은 내가 설정한 태그 이름이고, 각자가 설정한 태그 이름을 입력해주면 된다.
그러면 Run탭이 이렇게 변해있는 것을 확인할 수 있다.
Run 또는 Debug를 실행하면 정상적으로 테스트가 실행되는 것을 확인할 수 있다.