小编典典

获取JUnit 4中当前正在执行的测试的名称

java

在JUnit 3中,我可以这样获得当前正在运行的测试的名称:

public class MyTest extends TestCase
{
    public void testSomething()
    {
        System.out.println("Current test is " + getName());
        ...
    }
}

它将显示“当前测试是testSomething”。

在JUnit 4中,有什么现成的或简单的方法可以做到这一点吗?

背景:显然,我不想只打印测试的名称。我要加载存储在与测试名称相同的资源中的特定于测试的数据。您知道,约定优于配置以及所有其他内容。


阅读 393

收藏
2020-03-16

共1个答案

小编典典

JUnit 4.7似乎使用TestName-Rule添加了此功能。看起来这将为你获取方法名称:

import org.junit.Rule;

public class NameRuleTest {
    @Rule public TestName name = new TestName();

    @Test public void testA() {
        assertEquals("testA", name.getMethodName());
    }

    @Test public void testB() {
        assertEquals("testB", name.getMethodName());
    }
}
2020-03-16