小编典典

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

all

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

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

这将打印“当前测试是 testSomething”。

在 JUnit 4 中是否有任何开箱即用或简单的方法可以做到这一点?

背景:显然,我不想只打印测试的名称。我想加载存储在与测试同名的资源中的测试特定数据。你知道,约定优于配置等等。


阅读 74

收藏
2022-05-18

共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());
    }
}
2022-05-18