JUnit 5 (2)
들어가기에 앞서
- < 이전 포스트 : JUnit 5 (1)
- 모든 소스코드는 JUnit 5 공식 유저 가이드의 것을 사용하였다.
- 번역이라기 보다는 요약정리
공식 유저 가이드 의 1 ~ 2장을 정리하였다.
JUnit 5
JUnit 5란 무엇인가
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
기존의 JUnit 버전들과는 달리, JUnit 5는 서로 다른 하위 프로젝트로부터 기원한 서로 다른 모듈의 집합이다.
- JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
- JUnit Platform
- 플랫폼
JUnit Platform
은 JVM 기반 테스팅 프레임워크 를 실행시키기 위한 기반 모듈이다. - 플랫폼 모듈은 플랫폼 기반으로 실행 가능한 모든 테스팅 을 위해 테스트 엔진
TestEngine
API를 제공하며, 이러한 테스팅을 그래들Gradle
, 메이븐Maven
과 연동 가능하게 하는 콘솔 런처Console Launcher
를 제공한다. - 플랫폼 모듈은 또한, JUnit 4 환경 하에서 플랫폼 모듈을 이용하여 진행하는 테스트를 위해 러너
Runner
를 제공한다.
- 플랫폼
- JUnit Jupiter
- 주피터
JUnit Jupiter
는 JUnit 5 기반 테스트 케이스를 작성하기 위한 프로그래밍 모델과 확장 모델을 지원하는 모듈이다. - 주피터 모듈은 주피터 기반으로 작성된 테스트 케이스를 플랫폼
JUnit Platform
에서 실행시키기 위한 테스트 엔진TestEngine
역시 제공한다.
- 주피터
- JUnit Vintage
- 빈티지
JUnit Vintage
는 JUnit 3, JUnit 4 기반의 테스트를 플랫폼JUnit Platform
에서 실행시키기 위한 테스트 엔진TestEngine
을 제공하는 모듈이다.
- 빈티지
- JUnit Platform
JUnit 5는 실행 시 Java 8, 또는 그 이상 버전을 필요로 하나, 그 하위 버전의 JDK 로도 컴파일은 가능하다.
설치해보기
JUnit 5는 메이븐 중앙 저장소Maven Central
에 등록되어 있다.
의존성 정보
JUnit Platform
- 그룹 아이디 : org.junit.platform
아티팩트 아이디 | 설명 |
---|---|
junit-platform-commons | JUnit 내부적으로 사용하는 공통 라이브러리(혹은 유틸리티). JUnit 모듈 외부에서 사용되는 어떠한 상황도 상정하고 있지 않음. |
junit-platform-console | 콘솔을 사용하여 플랫폼JUnit Platform 상에서 수행되는 테스트를 위한 지원 라이브러리 |
junit-platform-console-standalone | 콘솔 런처ConsoleLauncher 의 실행 가능한 JAR 파일 |
junit-platform-engine | JUnit 5 기반의 테스트 수행을 위한 API |
junit-platform-gradle-plugin | 그래들Gradle 을 사용한 플랫폼 상 테스트를 위한 지원 라이브러리 |
junit-platform-launcher | 테스트 플랜을 구성하고 실행하는 API - IDE 및 빌드 도구에서 활용 |
junit-platform-runner | JUnit 4 환경에서 플랫폼 이용 테스트를 지원하기 위한 러너 |
junit-platform-suite-api | test suite 구성을 위한 어노테이션 |
junit-platform-surefire-provider | Maven Surefire 지원 라이브러리 |
JUnit Jupiter
- 그룹 아이디 : org.junit.jupiter
아티팩트 아이디 | 설명 |
---|---|
junit-jupiter-api | 테스트 작성 및 확장(러너Runner 등)을 위한 주피터JUnit Jupiter API |
junit-jupiter-engine | 주피터 모듈의 테스트 엔진TestEngine 구현체 |
junit-jupiter-params | 인자-있는-테스트 를 위한 지원 라이브러리 |
junit-jupiter-migrationsupport | JUnit 4에서 주피터 모듈로의 마이그레이션 지원 라이브러리 |
JUnit Vintage
- 그룹 아이디 : org.junit.vintage
아티팩트 아이디 | 설명 |
---|---|
junit-vintage-engine | 빈티지 모듈JUnit Vintage 의 테스트 엔진TestEngine 구현체. JUnit 3 또는 4에서 작성된 테스트를 플랫폼JUnit Platform 에서 실행시킬 때 사용 |
사족
개별 모듈의 버전 번호를 보면 어느 모듈이 어떤 목적으로 개발되었는지를 짐작할 수 있다. 예를 들면 2017년 10월 29일 현재 빈티지 모듈JUnit Vintage
의 버전 번호는 4.12.1
이고, 주피터 모듈JUnit Jupiter
의 버전 번호는 5.0.1
이다. 이는 빈티지 모듈은 기존 JUnit 4의 하위호환을 위해, 주피터 모듈은 새로운 JUnit 5 스타일의 테스트 작성을 위해 개발되었다는 증거가 아닐까.
마지막으로, 담대한 신인그리고 범 JUnit 계열 테스트의 희망찬 미래인 플랫폼 모듈JUnit Platform
의 버전은 1.0.1
이다.