借用
Duncan’s answer到问题
Get name of currently executing test in JUnit 4
@Rule
public TestRule watcher = new TestWatcher() {
protected void starting(Description description) {
System.out.println("Starting test: " + description.getMethodName());
}
};
@Test
public void someTest() {
// do some testing
}
@Test
public void someOtherTest() {
// do some other testing
}
如果你在一个更大的项目中,你可以
>将自定义TestWatcher规则提取到一个自己的小类中,这样每个测试类就会有一行代码,如果计算注释,则会有两行代码
>将规则声明添加到所有其他测试实现的抽象测试类
更新
你混合junit3和junit4风格.你不能扩展TestCase(junit3样式),然后尝试依赖注释驱动的junit4样式.在这里阅读如何使用junit4创建测试套件
底线是
>从所有测试中删除扩展的TestCase>以junit4样式重写测试套件