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

问题:

在JUnit 3中,我可以得到当前正在运行的测试的名称,如下所示:

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

这将打印“当前测试是testSomething”。
在JUnit 4中是否有任何开箱即用或简单的方法?
背景:显然,我不想打印测试的名称。我想加载与测试名称相同的资源中存储的特定于测试的数据。你知道,convention over configuration等等。
谢谢!

回答:

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());
    }
}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Get name of currently executing test in JUnit 4

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 34 = 37