プロジェクト

全般

プロフィール

調査 #116

未完了

GradleでJUnit5テストをローカルマシンで実施する

高橋 徹 さんがほぼ4年前に追加. 3年以上前に更新.

ステータス:
進行中
優先度:
通常
担当者:
カテゴリ:
-
開始日:
2020/05/08
期日:
2020/05/10 (3年以上 遅れ)
進捗率:

50%

予定工数:

説明

調査目的

非インターネット接続環境で開発作業をするべく、JUnitライブラリをローカルマシン上に配置し、それを利用してJUnit5のテストを実行する方法を明らかにする。

前提条件

  • 非インターネット接続の状況で新規にGradleプロジェクトを作成し、新たなJavaプログラムの開発を開始および継続できる。
  • JPMSモジュール対応は対象外とする

調査結果

本調査では次を明らかにした。

  • JUnit5ライブラリ(JARファイル)の選択、入手と配置
  • ローカルマシン上に配置したJUnit5ライブラリを使用するGradleビルド定義の記述方法
  • テストの実行

JUnit5ライブラリの選択と配置

JUnit 5は、ライブラリ(JARファイル)が細切れになっている。アプリケーションから利用するライブラリならよいが、副次的なテストライブラリでそれは全く嬉しくない。
ローカルマシンに配置するJARファイルは少ない方が作業・管理の手間が削減されるので、1つのJARファイルで賄える junit-platform-console-standalone を選択する。

mavenリポジトリにある次のURLからバージョン番号ディレクトリを辿って所望のJARファイルを入手する。
https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone/

入手したJARファイルをローカルマシンに配置する。場所は任意だが
Windowsマシンなら、C:\Program Files\Java\junit5 ディレクトリを設けてその下に、
Linuxマシンなら、/usr/local/share/java/junit5 ディレクトリを設けてその下に入れるのが一案である。

ビルド定義の記述

  1. build.gradle にローカルマシン上の指定のディレクトリをリポジトリとする定義を記述する。flatDirでパスを指定する。パスはマシンにより異なるのでbuild.gradleにはパスを直接記述せず、Gradleプロパティ名を記述する。
    repositories {
        flatDir {
            dirs "${property('library.junit5.dir')}" 
        }
    }
    
    • プロパティ名にピリオドを含まない場合は、dirs "${junit5}" と記述できる。ピリオドが含まれると、dirs "${library.junit5}" は library変数のjunit5メソッド呼び出しと解釈されるので意図した通りに動かない。
  2. build.gradle にJUnit 5のjunit-platform-console-standalone への依存を記述する。
    dependencies {
        testImplementation 'org.junit.platform:junit-platform-console-standalone:1.6.2'
    }
    
  3. build.gradle に、JUnit 5を使う際の必須定義を記述
    test {
        useJUnitPlatform()
    }
    
  4. ユーザーホームのgradle.propertiesにGradleプロパティ定義を記述
    Windowsの場合は、C:\Users\<ユーザー>\.gradle\gradle.properties
    Linuxの場合は、/home/<ユーザー>/.gradle/gradle.properties
    library.junit5.dir = C:/Program Files/Java/junit5
    

テスト実行

gradle build で一連のタスクの中でユニットテストが実行される。
テスト結果はbuild\reports\tests\test\index.html に出力される。

完了条件

調査結果を本説明欄に明記し、Wikiからリンクで本チケットを辿れるようにする。

他の形式にエクスポート: Atom PDF