on
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