반응형
JUnit5 에서는 여러 조건에 따른 테스트 실행 여부를 결정하는 기능을 제공한다.
OS, JRE, property, 환경변수 등에 따라 제어할 수 있고, 이는 org.junit.jupiter.api.condition 패키지에서 확인할 수 있다.
public class OSTest {
@Test
@EnabledOnOs(OS.MAC)
@EnabledOnJre(JRE.JAVA_17)
void mac_jre17_test() {
System.out.println("메롱");
}
@Test
@EnabledOnOs(OS.MAC)
@EnabledOnJre(JRE.JAVA_20)
void mac_jre20_test() {
System.out.println("바보");
}
@Test
@EnabledOnOs(OS.WINDOWS)
@EnabledOnJre(JRE.JAVA_17)
void windows_jre17_test() {
System.out.println("뿅");
}
}
현재 맥 & JRE17에서 다음과 같이 테스트를 작성했다고 하면 그 결과는 아래와 같다.
다른 테스트는 무시가 되고, 메롱만 표시된다.
그 외의 커스텀 조건으로 테스트를 실행시키고 싶다면 태그를 이용하면 된다.
public class TagTest {
@Tag("단위테스트")
@Test
void unit_test() {
System.out.println("우끼끼");
}
@Tag("통합테스트")
@Test
void integration_test() {
System.out.println("야옹");
}
}
@Tag 어노테이션은 클래스 레벨과 메서드 레벨에서 모두 사용 가능하다.
여러 태그를 붙이고 싶다면 @Tags 내에 @Tag를 여러 개 작성하면 된다.
만약 단위테스트만 돌리고 싶다면, 위와 같이 build.gradle 파일 내에 includeTags와 excludeTags 를 이용하여 원하는 대로 필터링을 걸 수 있다.
그러면 위의 @Enabled- 와 달리, 아예 테스트 자체가 무시되지 않고 실행조차 되지 않는다.
반응형
'TIL ✍️' 카테고리의 다른 글
24년 6월 17일(월요일) - 82번째 TIL : JJWT 0.11.5 -> 0.12.5 변경점 (0) | 2024.06.17 |
---|---|
24년 6월 16일(일요일) - 81번째 TIL : Failed to Connect to MySQL at 127.0.0.1 with user root (0) | 2024.06.16 |
24년 1월 30일(화요일) - 79번째 TIL :레디스(2) : 복제 & 센티널 (1) | 2024.01.31 |
24년 1월 29일(월요일) - 78번째 TIL :레디스(1) : 캐싱 전략 (0) | 2024.01.31 |
24년 1월 25일(목요일) - 77번째 TIL : DB 로직 최소화 (0) | 2024.01.31 |