「JUnit4/5+VSCode+Win11」環境構築＆実践例（2023年4月時点）

どうも皆さん、新卒研修でEclipseが推薦されている中、気分転換でJUnitがVSCodeでの環境構築手順を書いていこうと思います(~~Eclipseアンチだとかはではないです~~)
全体の手順としては以下：

> １．VSCodeをインストール
  ２．VSCodeにおけるJava環境の構築
  ３．Mavenをインストール・構築
  ４．JUnit4を利用する場合
  ５．JUnit5を利用する場合
　追加：新しいテストファイルを作る手順

# １．VSCodeをインストール
まずVSCodeのダウンロードリンクはこちらです：
[Download Visual Studio Code - Mac, Linux, Windows](https://code.visualstudio.com/Download)

インストールの方法・日本語化の方法についてネットでいろんな記事があるので、割愛します。
[VSCodeのインストール方法について解説する【初心者向き】](https://miya-system-works.com/blog/detail/vscode-install/)
# ２．Java環境の構築
### ・JDKをダウンロード
公式サイトで最新バージョンをダウンロードできます：
[Java Downloads | Oracle 日本](https://www.oracle.com/jp/java/technologies/downloads/#jdk20-windows)
私の場合はJDK20をダウンロードしました。（2023.04.12時点）
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681274154993_+2023-04-12+133356.png)
インストール後、JDKがどこに保存されているかを記録する必要があります。
私の場合、JDKのディレクトリーは：

     C:\Program Files\Java\jdk-20

![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681274320180_+2023-04-12+133829.png)
後ほどVSCodeのJava環境構築で、\を/に変える必要がありますが、その時また紹介します。

### ・Java Extensionをインストール
VSCodeを起動し、左側にあるExtensionsをクリック
Windowsのショットカットは

    Ctrl + Shift + X
検索欄に「java」を入力すると、一番最初に出てくるこの「Extension Pack for Java」をインストールしてください。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681273930451_+2023-04-12+133054.png)
### ・VSCodeでJavaの環境設定
続けて、左下の「Manage」のボタンを押して、「Settings」に行きます。
Windowsのショットカットは

    Ctrl + ,
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681274963368_+2023-04-12+134619.png)
サーチ欄に、「java:HOME」を入力し、出てきた画面の下にある「Edit in settings.json」を押して、settings.jsonが開きます。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681275175514_+2023-04-12+134832.png)
先ほど記録してもらったJDKの保存先をここに記入します。

:::note warn
パスの\を/に変換することを忘れないでね。
:::
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681275353922_+2023-04-12+134910.png)
これでVSCodeでのJava環境は一旦終了です。


# ３．Mavenをインストール・構築
### ・Mavenのダウンロードと保存
Mavenの公式ダウンロードページ：[Maven – Download Apache Maven](https://maven.apache.org/download.cgi?Preferred=https%3A%2F%2Fdlcdn.apache.org%2F)
「Binary zip archive」のところにあるZIPファイルをダウンロードしましょう。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681275602666_+2023-04-12+135925.png)
ダウンロードしたら、こんな感じになるかと思います。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681275669944_+2023-04-12+140101.png)
ダウンロードに保存するのは個人的にいやなので、管理しやすいため、「apache-maven-3.9.1」フォルダの場所を移動します。私の場合は、

    C:\Program Files\maven
に移動しました。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681275813333_+2023-04-12+140321.png)
皆さんもダウンロードしたら、このフォルダの位置をメモしておきましょう。
### ・MAVEN 環境変数の設置
windowsのショットカットで「win+R」を押して、「sysdm.cpl」を入力します。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681275948890_+2023-04-12+140530.png)
「OK」あるいはEnterキーを押すと、「システムのプロパティ」の画面に。
この画面の上にある「詳細設定」を選択。
そして「詳細設定」の画面下にある「環境変数」というのを開きます。
![スクリーンショット 2023-04-13 111547.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329682/0f62900d-a78a-fc7d-c352-86a2aa92894a.png)
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681276094719_+2023-04-12+140735.png)
「環境変数」画面を開いたら、下方の「新規作成」を選択し、変数名を「MAVEN_HOME」に、変数値は先ほど記録してもらった「apache-maven-3.9.1」のフォルダのディレクトリー。
![スクリーンショット 2023-04-13 111830.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329682/6322c0f8-51e2-3a1a-8128-72082988c7bf.png)
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681276401087_+2023-04-12+141233.png)
これで一旦「OK」で、「環境変数」画面に戻ります。続けて、下の「システム環境変数」の中にある「Path」という変数を探してみましょう。見つかったらダブルクリックして開きます。
![スクリーンショット 2023-04-13 112105.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329682/2e4d7ee7-41a9-c021-b613-1c17365937df.png)
「新規」を押して、「%MAVEN_HOME%\bin」を入力し、Enterキーを押します。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681276624627_+2023-04-12+141633.png)
これでMavenの設定が全部終わりました。お疲れ様です。

### ・Maven設置がうまく行ったかの確認

Mavenが本当にうまく設置できたかどうかを確認する方法として、cmd（git bashでもいい）を開いて、「mvn -v」のコマンドを打って、以下のようなコードが出てきたらおっけーです。

コマンドプロンプト：
![スクリーンショット 2023-04-13 112253.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329682/62b9b258-e611-d9ee-33d7-cb1e23bad9c0.png)
Git Bash：
![スクリーンショット 2023-04-13 112504.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3329682/49625960-74c5-df12-9237-adbb74991cac.png)
# ４．JUnit4を利用する場合
### ・Mavenによるプロジェクトの作成
Mavenによるプロジェクトの作成は自動的というか、ディフォルト的にJUnit4を使っています。VSCodeを開き、左下の「Manage」ボタンを押して、「Command Palette」を開きましょう。
Windowsのショットカットは

    Ctrl+Shift+P
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681276982781_+2023-04-12+142218.png)
下の画面が出てくると、「Java: Create Java Project…」を検索して選択
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277115770_+2023-04-12+142411.png)
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277120694_+2023-04-12+142441.png)
この後「Maven」→ 「maven-archetype-quickstart」→「1.4」で選択
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277317051_+2023-04-12+142557.png)
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277322524_+2023-04-12+142606.png)
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277385172_+2023-04-12+142614.png)
「group Id」と「artifact Id」は自身で入力してください。私は「test」と「demo」で今回作ってみます。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277398740_+2023-04-12+142631.png)
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277453084_+2023-04-12+142644.png)
どこに保存するかの画面が出てくるので、保存するディレクトリーを選択したら、プロジェクトの作成が始まります。おそらくこんな感じになって、止まってしまうと思いますが、私はシンプルにEnterキーを押して次に進みました。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277572967_+2023-04-12+143036.png)
下の画面になると、「y」を入力して、Enterキーを押します。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277663726_+2023-04-12+143350.png)
プロジェクトの作成は成功し、右に飛んできたメッセージで「Open」をクリック。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277864709_+2023-04-12+143713.png)
そしたら画面がこんな感じになると思います。左側の「EXPLORER」に、新規作成されたJavaプロジェクトを確認することができます。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277945752_+2023-04-12+143842.png)
「src」を見てみると、こんな構造になっていることが確認できます：
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681277975001_+2023-04-12+143859.png)
以上がJUnit4編でした。お疲れ様です。
# ５．JUnit5を利用する場合
先ほど作成したプロジェクトをそのままもう少しいじってみましょう。
JUnit5はデフォルトではないので、自分で設置しないといけないので、その過程がやや複雑でここで紹介します。これができると、@Nestedなどのタグが使えるようになるかと思います。
### ・JUnit5ライブラリーの追加
まず、JUnit5がdemoプロジェクトに使えるために、プロジェクトにJUnit5のライブラリーを追加しないといけません。その手順はこちらです：
まず、左下の「MAVEN」を選択して、中にある「Dependencies」を開きます。
そして右の「＋」を押します。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681278688547_+2023-04-12+144310.png)
上にサーチ欄が出てくるので、そこに「junit.jupiter」を入力して検索
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681278833074_+2023-04-12+145242.png)
検索した結果から、「junit-jupiter-api」、「juit-jupiter-engine」、「junit-jupiter-params」を選択します。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681280028131_+2023-04-12+145319.png)
選択すると、「pom.xml」というファイルが自動的に開かれます。赤い部分はさっきの操作によって更新された部分、私はさっき「junit-jupiter-api」を選択しましたので、ここに更新されています。
三回分けて一個ずつ入れるしかないのですが、全部終わったら、

:::note warn
「pom.xml」を一旦保存しましょう！（大事）
:::
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681279028526_+2023-04-12+145532.png)
保存すると、右下にメッセージが飛んできて、素直に「Yes」を選択。実行環境にかかわるファイルがいじられたので、環境をアップデートするかの問い合わせです。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681279199157_+2023-04-12+145929.png)
これでJUnit5ライブラリーは準備おっけーです。お疲れ様です。
### ・新しいテストクラスを作成する手順
まず新しいクラスを作成
上の検索欄に「>」を入れる、あるいはWindowsのショットカット「Ctrl+Shift+P」を使ってこの画面になります。「Java: New Java Class」で検索すると、黄色の選択が出てくると思います。よく使うアクションなので、右の赤の部分にマウスを移動させればショットカットの設定ができると思います。私の場合は「Alt+N」にしました。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681349177773_+2023-04-13+102526.png)
クラス名を入力して作成、私は「Pokemon」というクラスを作りました（なんとなく）。クラスの中にコードを適当に書きます。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681349825338_+2023-04-13+103119.png)
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681350038281_+2023-04-13+104026.png)「Pikachuuuu」を出力するコードになります。（なんとなく×２）

先ほどと同様に、「Java: Go to Test」のアクションを探します。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681350214142_+2023-04-13+104318.png)
このクラスは新規作成されてテストがありません。「Tests not found for current file」となりますので、「Generate tests…」しましょう。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681350334413_+2023-04-13+104503.png)
そしたら、先JUnit5の設置をしたらここでは選べるはずです。JUnit5にしてみます。
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681350519469_+2023-04-13+104723.png)
ここのクラスネームは自動で生成されるのでこのまま前進（Enterキー）
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681350552551_+2023-04-13+104731.png)
先作成された「main」メソッドが出てきました、選択して「OK」！
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681350592195_+2023-04-13+104751.png)
無事テストクラスが作成されました
![](https://paper-attachments.dropboxusercontent.com/s_FC1F9D6BCBDDBCACCD47C702F5AB6C4DD7A5F144C2BFEE938C3DF49562FD62F0_1681350648012_+2023-04-13+104811.png)
以上が全部の内容でした。お疲れ様です。