如何从Parent类中获取Java Child类名?

时间:2013-04-04 10:49:39

标签: java junit

我正在执行Java JUnit测试。 Child测试类扩展了Parent测试类,并且子项自然重用了ParentsetUp()tearDown()方法。在Parent tearDown()方法中,我有一个方法可以截取浏览器窗口。

我想通过执行的类名来命名图像。但是,我遇到了一个问题,因为我需要在Parent tearDown()中了解正在执行的Child测试类名称。

如何做到这一点?

2 个答案:

答案 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()