web-dev-qa-db-ja.com

JUnit 5のTestNameルールに相当するものは何ですか?

JUnit 5でテストメソッドの名前を取得するにはどうすればよいですか?

17
Mahozad

テストメソッドでTestInfo型のパラメーターを宣言すると、JUnitが自動的にそのインスタンスをメソッドに提供します。

@Test
void getTestInfo(TestInfo testInfo) { // Automatically injected
    System.out.println(testInfo.getDisplayName());
    System.out.println(testInfo.getTestMethod());
    System.out.println(testInfo.getTestClass());
    System.out.println(testInfo.getTags());
}

上記のように、TestInfoインスタンスからテストメソッド名(およびその他)を取得できます。

12
Mahozad

個人的に私はこれを使うことを好みます:

System.out.println(Thread.currentThread().getStackTrace()[1].getMethodName());

3
John Carroll