※色々とアレなので参考にしないでください。JDKはSDKMAN!とか使って入れたほうがいいですし、IDEAでGradleプロジェクトを作ればほとんど自動でやってくれます
はじめに
タイトルの通りの雑多なメモです。個人的な備忘録なので、画面キャプチャもない手抜き記事です。
また、「こうやったらできたよ」という内容なので、もっといい方法があるかもしれません。
環境
- macOS Catalina
内容
JDKのインストール
もともと入っていたので今回作業をしてないですが、以下のような手順でやった覚えがあります。
まずHomebrewをアップデートします。
$ brew update
次に下記コマンドでインストール(現時点で最新版のJava13がインストールされる)。
$ brew cask install java
IntelliJ IDEAのインストール
もともと入っていたので(ry
公式サイトからインストーラをダウンロードして、ポチポチやるだけだと思うので省略してもいいですよね?いいってことにしよう。
Gradleのインストール
下記コマンドでインストールします。
$ brew install gradle
が、既に入っていると怒られたので下記で再インストールしました。
$ brew upgrade gradle
IntelliJ IDEAでプロジェクトの作成
「Create New Project」からプロジェクトを作成します。Project SDKにはさっきインストールしたJDKを指定します。
あとは特に変更せずにNextボタンをポチポチ押していって、最後のProject nameに好きな名前を付けてFinishボタン押下で終了です。
ソース階層の作成
もともとあるsrcディレクトリの下にmain/javaディレクトリとtest/javaディレクトリを作成します。
そしてFile -> Project Structure... -> Modulesを開き、上で作ったmain/javaディレクトリ(mainディレクトリの下のjavaディレクトリ)を選択し、画面上のMark as: でSourcesを選択します。また、もともとあったsrcはSourcesを外します。
同様に、test/javaディレクトリ(testディレクトリの下のjavaディレクトリ)でTestsを選択します。
build.gradleの作成
プロジェクトディレクトリの直下に下記のようなファイルを作成します。JUnit5の依存性解決が目的ですが、現時点で最新の5.6.0を指定しました。
apply plugin: 'java'
apply plugin: 'idea'
repositories {
mavenCentral()
}
test {
useJUnitPlatform {
includeEngines 'junit-jupiter'
}
}
dependencies {
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.6.0'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.6.0'
}
Gradle Wrapperの作成
IDEA上のターミナルから下記コマンドを実行します。現時点で最新の6.1.1を指定しました。
$ gradle wrapper --gradle-version=6.1.1
依存性の解決
下記コマンドを実行し、しばらく待ちます。ここまでできれば、JUnit5を動かせるようになっているはずです。
$ ./gradlew idea
動作確認
適当なJavaクラスを作ります。ここでは下記のようなクラスを作りました。
package com.github.dhirabayashi.calc;
public class Calc {
public int add(int x, int y) {
return x + y;
}
}
できたら、メソッド内にマウスポインタを移動させて右クリック -> Go To -> Test -> Create New Test...を選択します。
Testing libraryにJUnit5が選択されているのを確認し、OKを押下するといい感じにJUnit5のテストクラスの雛形を作ってくれます。
今回はそれをもとに下記のようなテストクラスを作りました。
package com.github.dhirabayashi.calc;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalcTest {
@Test
public void testAdd() {
var calc = new Calc();
assertEquals(5, calc.add(2, 3));
}
}
これで右クリックからテストを実行し、成功すればOKです。また、値を変えて失敗することも確認しましょう。
参考
MacのBrewで複数バージョンのJavaを利用する + jEnv
Gradle wrapper のバージョン更新についてのメモ
No tests found for given includes Error, when running Parameterized Unit test in Android Studio
Gradle4.6 からの JUnit5 実行方法