我想在@Before 方法中获取当前正在执行的TestCase 方法的名称。例子
public class SampleTest()
{
@Before
public void setUp()
{
//get name of method here
}
@Test
public void exampleTest()
{
//Some code here.
}
}
如这里所讨论的,尝试使用 @Rule 和 TestName 组合。
根据方法之前的文档应该有测试名称。
注释包含规则的字段。这样的字段必须是公共的,而不是静态的,并且是 TestRule 的子类型。传递给 TestRule 的 Statement 将运行任何 Before 方法,然后是 Test 方法,最后是任何 After 方法,如果其中任何一个失败,则抛出异常
这是使用 Junit 4.9 的测试用例
public class JUnitTest {
@Rule public TestName testName = new TestName();
@Before
public void before() {
System.out.println(testName.getMethodName());
}
@Test
public void test() {
System.out.println("test ...");
}
}
尝试使用带有类的@Rule
注释org.junit.rules.TestName
@Rule public TestName name = new TestName();
@Test
public void test() {
assertEquals("test", name.getMethodName());
}