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