UnitTestをGradleをコマンド実行したらFAILEDとなり失敗。結論的にはローカル環境のJavaのバージョンが低かった。
$ ./gradlew test
> Task :test FAILED
FAILURE: Build failed with an exception.
build/reports/tests/test/index.htmlを確認すると以下のようなExceptionのログが出力されている。Java11でコンパイルされているけどJavaのRuntimeはJava8までしか認識できないと怒られてる。
org.gradle.api.internal.tasks.testing.TestSuiteExecutionException: Could not execute test class 'com.example.bffsample.repository.TaskRepositoryTest$GetTask'.
・・・
省略
・・・
Caused by: java.lang.UnsupportedClassVersionError: com/example/bffsample/repository/TaskRepositoryTest$GetTask has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
現在のJavaのバージョンを確認
$ javac -version
javac 1.8.0_45
インストール済みのJavaを確認。SpringBootのプロジェクト作成時にIntelliJからJava14をダウンロードしていたのでそれを使用する。
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
14.0.2, x86_64: "OpenJDK 14.0.2"
1.8.0_45, x86_64: "Java SE 8"
1.8.0_20, x86_64: "Java SE 8"
Java14を使用するようにPATHを変更して再度バージョン確認
$ sudo vi .bashrc
以下を追加
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Com mands/java_home -v 14`
PATH=$JAVA_HOME/bin:$PATH
$ source .bashrc
$ java -version
openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-46)
OpenJDK 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)
再度Gradleコマンドを実行して成功することを確認
$ ./gradlew test
・
・
・
BUILD SUCCESSFUL in 30s
4 actionable tasks: 3 executed, 1 up-to-date
コメントを残す