2013-04-04 61 views
1

我正在執行Java JUnit測試。 Child測試類擴展Parent測試類,並且孩子自然重用ParentsetUp()tearDown()方法。在ParenttearDown()方法我有一個瀏覽器窗口截圖的方法。如何從父類獲取執行的Java子類名?

我想通過執行類名來命名圖像。但是,我有一個問題,因爲我需要在ParenttearDown()獲得執行Child測試類名稱的知識。

這怎麼辦?

回答

6
@After 
public void tearDown() { 
    String name = getClass().getName(); 
    // use name as filename 
} 
0

使用@ClassRule

創建一個新的類,如下

import org.junit.rules.TestWatcher; 
import org.junit.runner.Description; 

public class TestClassName extends TestWatcher{ 

private String name = null; 

protected void starting(Description d){ 
    name = d.getClassName(); 
} 

public String getName(){ 
    return name; 
} 

} 

,並在您的父母測試用例添加以下行

@ClassRule 
public static TestClassName testClassName = new TestClassName(); 

使用testClassName.getName()在拆卸方法