JUnit 5 ユーザガイド 第2章 インストール

# はじめに
株式会社Udzukiの@tsukakeiです。
東京大学大学院でソフトウェアテストの研究を行なっていました。

~~JUnit 5の[ユーザガイド](https://junit.org/junit5/docs/current/user-guide/)を邦訳していきたいと思います。~~


~~[JUnit 5 ユーザガイド 第1章 概要](https://qiita.com/tsukakei/items/65cee9e542d1e7effc95)~~
~~[JUnit 5 ユーザガイド 第2章 インストール](https://qiita.com/tsukakei/items/1b3c2b0a3455edaee251)~~
~~[JUnit 5 ユーザガイド 第3章 テストを書く](https://qiita.com/tsukakei/items/7e48c84b96e3ebf34498)~~
~~JUnit 5 ユーザガイド 第4章 テストを実行する~~
~~JUnit 5 ユーザガイド 第5章 モデルの拡張~~
~~JUnit 5 ユーザガイド 第6章 JUnit4との違い~~
~~JUnit 5 ユーザガイド 第7章 先進的な話題~~
~~JUnit 5 ユーザガイド 第8章 APIの進化~~

全ての章を翻訳し、[こちら](https://udzuki.jp/public/junit5-user-guide-ja/)にアップロードしました。

# インストール
最終リリースとマイルストーンのついた生成物はMaven Centralにデプロイされます。

スナップショット版はSonatypeの[スナップショットレポジトリ](https://oss.sonatype.org/content/repositories/snapshots)の[/org/junit](https://oss.sonatype.org/content/repositories/snapshots/org/junit/)以下にデプロイされます。

## 依存関係のメタデータ
### JUnit Platform
- Group ID: `org.junit.platrform`
- Version: `1.2.0-M1` (2018年4月17日現在)
- Articfact IDs:
    - `junit-platform-commons`: JUnitのインターナルな共通ライブラリ・ユーティリティ。これらのユーティリティはJUnitフレームワーク自身での使用のみが意図されています。いかなる外部パーティからの使用はサポートされていません。使用は自身の責任で行ってください。
    - `junit-platform-console`: コンソールからJUnitプラットフォーム上でテストを発見し実行することをサポートします。詳細については[Console Launcher](https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher)をご覧ください。
    - `junit-platform-console-standalone`: 全ての依存関係が包含された実行可能なJARファイルがMaven Centralの[junit-platform-standalone](https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone)以下のディレクトリで提供されています。詳細については[Console Launcher](https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher)をご覧ください。
    - `junit-platform-engine`: テストエンジンのpublic APIです。詳細については[Plugging in Your Own Test Engine](https://junit.org/junit5/docs/current/user-guide/#launcher-api-engines-custom)をご覧ください。
    - `junit-platform-gradle-plugin`: GradleからのJUnitプラットフォーム上のテスト実行をサポートします。
    - `junit-platform-launcher`: テストプランの設定をしたり実行するためのpublic APIです。典型的にはIDEやビルドツールによって使われます。詳細については[JUnit Platform Launcher API](https://junit.org/junit5/docs/current/user-guide/#launcher-api)をご覧ください。
    - `junit-platform-runner`: JUnit 4の環境で、JUnitプラットフォームを持ちいてテスト実行するためのRunnerです。詳細については[Using JUnit 4 to run the JUnit Platform](https://junit.org/junit5/docs/current/user-guide/#running-tests-junit-platform-runner)をご覧ください。
    - `junit-platform-suite-api`: JUnitプラットフォーム上でテストスイートの設定をするためのアノテーションです。[JUnitPlatform runner](https://junit.org/junit5/docs/current/user-guide/#running-tests-junit-platform-runner)にサポートされています。また、サードパーティによる`TestEngine`実装にもサポートされている可能性があります。
    - `junit-platform-surefire-provider`: Maven SurefireからのJUnitプラットフォーム上のテスト実行をサポートします。

### JUnit Jupiter
- Group ID: `org.junit.jupiter`
- Version: `5.2.0-M1` (2018年4月17日現在)
- Articfact IDs:
    - `junit-jupiter-api`: テストを書いたり、拡張するためのJUnit Jupiter APIです。
    - `junit-jupiter-engine`: JUnit Jupiter テストエンジンの実装です。実行時のみ必要です。
    - `junit-jupiter-params`: JUnit Jupiterでのパラメータ化テストをサポートします。
    - `junit-jupiter-migrationsupport`: JUnit 4からJUnit Jupiterへのマイグレーションをサポートします。いくつかのJUnit 4 rulesを実行する時のみ必要です。

### JUnit Vintage
- Group ID: `org.junit.vintage`
- Version: `5.2.0-M1` (2018年4月17日現在)
- Articfact ID:
    - `junit-vintage-engine`: JUnit Vintageテストエンジンの実装です。JUnit 3やJUnit 4で書かれたテストをJUnitプラットフォーム上で実行することができます。

### Bill of Materials (BOM)
下のMaven設定で提供されている *Bill of Materials* POMは、MavenやGradleを用いて上記の生成物を複数参照する際に、依存関係の管理を容易にすることができます。

- Group ID: `org.junit`
- Articfact ID: `junit-bom`
- Version: `5.2.0-M1` (2018年4月17日現在)

### 依存関係
上記の生成物は全て、次の *@API Guardian JAR*で公開されているMaven POMsに依存関係があります。
- Group ID: `org.apiguardian`
- Articfact ID: `apiguardian-api`
- Version: `1.0.0` (2018年4月17日現在)

さらに、上記の生成物のほとんどは、次の *OpenTest4J* JARと直接的、または推移的な依存関係があります。

- Group ID: `org.opentest4j`
- Articfact ID: `opentest4j`
- Version: `1.0.0` (2018年4月17日現在)

## 依存関係の図
[JUnit 5 User Guide](https://junit.org/junit5/docs/current/user-guide/#dependency-diagram)を参照。

## JUnit Jupiter サンプルプロジェクト
[junit5-samplesレポジトリ](https://github.com/junit-team/junit5-samples)は、JUnit JupiterとJUnit Vintageをベースとしたサンプルプロジェクトをいくつもホストしています。プロジェクトには`build.gradle`と`pom.xml`がそれぞれ置かれています。

- Gradleユーザは、[junit5-gradle-consumer](https://github.com/junit-team/junit5-samples/tree/r5.2.0-M1/junit5-gradle-consumer)を確認してください。
- Mavenユーザは、[junit5-maven-consumer](https://github.com/junit-team/junit5-samples/tree/r5.2.0-M1/junit5-maven-consumer)を確認してください。