JUnit 5 ユーザーズガイド を読む 1


JUnit 5 のユーザーズガイドを読みました。 公式ドキュメントのうち、重要そうなところをピックアップしてまとめています。 そのため公式ドキュメントにあってこちらにない文章もあります。

1 概要

1.1 JUnit 5 とは

これまでの JUnit とは異なり、3つのサブプロジェクトで開発されている様々なモジュールから構成されています。

3つのサブモジュールとは JUnit Platform, JUnit Jupiter, JUnit Vintage を指します。

JUnit Platform

JVM上でテスティングフレームワークを動作させるための基礎です。 TestEngine の API定義 と、 TestEngine を実行するためのコンソールランチャーを提供します。

JUnit Jupiter

JUnit 5 でテストを書くための機能で、 TestEngine も提供します。

JUnit Vintage

JUnit 3 や JUnit 4 のテストを実行するための TestEngine を提供します。

1.2 サポートする Java のバージョン

テスト実行時には Java 8 以上 のバージョンが必要です。

コンパイルは Java 8 以前 のバージョンでも可能です。

2 インストール

2.1 依存関係のメタデータ

2.1.1 JUnit Platform

Group ID

org.junit.platform

Version

1.3.2

Artifact IDs
junit-platform-commons

JUnit 内部の共通ライブラリおよびユーティリティです。 JUnit 内部からの使用を前提としていますので、 テストを記述する際に直接使うことはありません。

junit-platform-console

コンソールからのテスト実行をサポートしています。

junit-platform-console-standalone

全ての依存関係を包含した実行可能な JAR を提供します。

junit-platform-engine

テストエンジンのAPIです。

junit-platform-launcher

テストプランの設定・起動のためのAPIです。 基本的にIDEやビルドツールによって使用されます。

junit-platform-runner

JUnit 4 の環境でテストを実行するためのランナーです。

junit-platform-suite-api

テストスイートの設定をするためのアノテーションです。

junit-platform-surefire-provider

Maven でテストを実行するためのサポートです。

2.1.2. JUnit Jupiter

Group ID

org.junit.jupiter

Version

5.3.2

Artifact IDs
junit-jupiter-api

テストを書いたり拡張したりするための Jupiter の API です。

junit-jupiter-engine

JUnit TestEngine の実装で、 実行時のみ必要です。

junit-jupiter-params

JUnit Jupiter でのパラメタライズドテストをサポートします。

junit-jupiter-migrationsupport

JUnit から JUnit Jupiter へのマイグレーションをサポートします。 いくつかの JUnit 4 のルールを実行する際に必要です。

2.1.3 JUnit Vintage

Group ID

org.junit.vintage

Version

5.3.2

Artifact ID
junit-vintage-engine

JUnit 3 や JUnit 4 といった 古い JUnit のテストエンジンの実装です。

2.1.4 部品表 (BOM)

部品表POMが次のMavenリポジトリで提供されています。 Gradle, Maven などでの依存関係管理を楽にします。

Group ID

org.junit

Artifact ID

junit-bom

Version

5.3.2

2.1.5 依存関係

上記の全ての Artifact は全て 次の @API Guardian JAR に依存しています。

@API Guardian
Group ID

org.apiguardian

Artifact ID

apiguardian-api

Version

1.0.0

また、上記 Artifact のほとんどが、 OpenTest4J に直接的または間接的に依存しています。

OpenTest4J
Groupo ID

org.opentest4j

Artifact ID

opentest4j

Version

1.1.1

2.3 JUnit Jupiter サンプルプロジェクト

junit5-samples リポジトリ には JUnit Jupiter または JUnit Vintage をベースとしたサンプルプロジェクトがあります。 build.gradlepom.xml といったビルドスクリプトは下記リポジトリにまとめられています。

ビルドツール メイン言語 リポジトリ
Gradle Java junit5-jupiter-starter-gradle
Gradle (Kotlin) Kotlin junit5-jupiter-starter-gradle-kotlin
Gradle Groovy junit5-jupiter-starter-gradle-groovy
Maven Java junit5-jupiter-starter-maven
Ant junit5-jupiter-starter-ant