JUnit獲取測試用例名稱
阿新 • • 發佈:2019-02-15
在JUnit中獲取測試用例名稱有兩種方法:
方法1:呼叫TestName的getMethodName方法
方法2:通過Thread類獲取當前堆疊資訊
具體示例如下:
父類:
子類:package cskgnt.test; import org.junit.Rule; import org.junit.rules.TestName; public class Father { public String getFunctionName() { return Thread.currentThread().getStackTrace()[2].getMethodName(); } public String getClassName() { return Thread.currentThread().getStackTrace()[2].getClassName(); } @Rule public TestName name = new TestName(); }
package cskgnt.test; import org.junit.Test; public class Son extends Father { @Test public void testCase() { System.out.println("Method name: " + name.getMethodName()); System.out.println("Method name: " + getFunctionName()); System.out.println("Class name: " + getClassName()); } }
執行結果如下:
Method name: testCase
Method name: testCase
Class name: cskgnt.test.Son
可以看出,方法1是JUnit特有的方法,且只能獲取當前方法名,無法獲取類名;方法2是java通用的方法,不僅限於JUnit,且可以獲取完整類名、方法名,推薦方法2