<aside> 📖

학습 목표

1. JUnit 5 구조 개요

JUnit 5는 단일 모듈로 구성되어 있지 않고, 다음과 같은 3개의 주요 구성 요소로 나뉩니다.

JUnit 5
└── junit-platform
    ├── junit-platform-engine
    ├── junit-platform-launcher
    ├── junit-platform-console
    └── ...

JUnit Jupiter
└── junit-jupiter-api
    ├── junit-jupiter-engine
    └── junit-jupiter-params

JUnit Vintage
└── junit-vintage-engine


2. JUnit Platform

JUnit Platform은 테스트 프레임워크를 실행하기 위한 기반 런타임입니다. 즉, Jupiter든 Vintage든 모두 Platform 위에서 실행됩니다.

2-1. 주요 모듈 설명

모듈 설명
junit-platform-engine Jupiter, Vintage와 같은 엔진 구현을 위한 SPI 제공
junit-platform-launcher IDE, Gradle, Maven과 같은 실행기와 연결 역할
junit-platform-console 커맨드라인에서 JUnit 테스트 실행 가능하게 함
junit-platform-commons 공통 유틸리티 및 에러 처리 지원

2-2. Platform 실행 흐름 예시

LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
    .selectors(DiscoverySelectors.selectPackage("com.example"))
    .build();

Launcher launcher = LauncherFactory.create();
launcher.execute(request);

위 코드는 테스트를 수동으로 실행할 때 Platform이 어떻게 작동하는지를 보여줍니다.

실무 팁