TIL : JUnit

TIL : JUnit

조건에 따라 테스트 코드 실행하기

Assumptions assumeTrue(조건) assumingThat(조건, 테스트)

@Enabled__와 @Disabled__ OnOS OnJre ifSystemProperty ifEnvironmentVariable if

@Test @EnabledOnOs({OS.LINUX, OS.MAC}) // LINUX와 MAC에서만 실행 @EnabledOnJre({JRE.JAVA_8}) //JAVA 8 에서만 실행 @EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "LOCAL") //TEST_ENV 환경 변수가 LOCAL 인 경우만 실행 void create(){ String test_env = System.getenv("TEST_ENV"); System.out.println(test_env); assumeTrue("LOCAL".equalsIgnoreCase(test_env)); // TRUE가 아니면 테스트가 이 시점에서 종료됨 assumingThat("LOCAL".equalsIgnoreCase(test_env), () -> { System.out.println("TRUE"); // 만족을 하면 구동되는 코 }); }

태깅과 필터링

** 태깅 : 태그를 붙이는 것, 테스트 그룹을 만들고 원하는 테스트 그룹만 테스트를 실행할 수 있는 기능

@Tag 테스트 메소드에 태그를 추가할 수 있다 하느이 테스트 메소드에 여러 태그를 사용할 수 있다

인텔리J에서 특정 태그로 테스트 필터링 하는 방법

Maven에 의한 필터링

maven-surefire-plugin fast | slow

커스텀 태그

원하는 Test Anotation들을 조합하여 어노테이션을 만들 수 있다

Example :

@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Tag("fast") @Test public @interface FastTest { }

테스트 반복하기

@RpeatedTest 반복 횟수와 반복 테스트 이름을 설정할 수 있다 {displayName} {currentRepetition} {totalRepetation} RepetitionInfo 타입의 인자를 받을 수 있다

Parameterized Test 테스트에 여러 다른 매개변수를 대입해가며 반복 실행한다. {displayName} {index} {arguments} {0}, {1}, ...

from http://jacksonhong.tistory.com/53 by ccl(A) rewrite - 2021-12-15 08:01:50