2013-04-04 76 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()在拆卸方法