我正在执行Java JUnit测试。 Child
测试类扩展了Parent
测试类,并且子项自然重用了Parent
类setUp()
和tearDown()
方法。在Parent
tearDown()
方法中,我有一个方法可以截取浏览器窗口。
我想通过执行的类名来命名图像。但是,我遇到了一个问题,因为我需要在Parent
tearDown()
中了解正在执行的Child
测试类名称。
如何做到这一点?
答案 0 :(得分:6)
@After
public void tearDown() {
String name = getClass().getName();
// use name as filename
}
答案 1 :(得分: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();
在tearDown方法中使用testClassName.getName()