Eclipse+maven+JUnit5でのテスト用データの置き場所

微妙にはまったので。

○ 環境
・ OS : Windows 10 Pro
・ Java JDK : 1.8.0_222
・ maven : 3.6.1
・ Eclipse : 2019-06 (4.12.0)
・ JUnit5 : 5.2.0 ( org.junit.jupiter の junit-jupiter-api のバージョン )

○ 結論
https://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html
に書いてある通り、src/main/resources ディレクトリを作成してそこにテスト用データを置く。
そうすると、例えば JUnit5 のテストコードで

/* 複数行で書いてあるのはデバッグしやすくするため */

import java.net.URL;

ClassLoader obj1 = getClass().getClassLoader();
URL obj2 = obj1.getResource(“res”);

とか書いておくと、src/main/resources 以下のディレクトリで res という名前のディレクトリを見つけてくれる。

○ 補足
JUnit5 使っているなら @TempDir 使えばよい、という話もある。
https://www.baeldung.com/junit-5-temporary-directory
https://junit.org/junit5/docs/current/api/org/junit/jupiter/api/io/TempDir.html
但し「元データはどこに置くの?」という話は依然として残る。
https://maven.apache.org/surefire/maven-surefire-plugin/
maven-surefire-plugin を使うと test フェーズの詳細な制御ができるっぽい ( が試してない )。