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