在JUnit 3中,我可以这样获得当前正在运行的测试的名称:
public class MyTest extends TestCase { public void testSomething() { System.out.println("Current test is " + getName()); ... } }
它将显示“当前测试是testSomething”。
在JUnit 4中,有什么现成的或简单的方法可以做到这一点吗?
背景:显然,我不想只打印测试的名称。我要加载存储在与测试名称相同的资源中的特定于测试的数据。您知道,约定优于配置以及所有其他内容。
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()); } }