我想获得@Before方法中当前执行TestCase方法的名称。示例
public class SampleTest()
{
@Before
public void setUp()
{
//get name of method here
}
@Test
public void exampleTest()
{
//Some code here.
}
}
正如这里所讨论的,尝试使用@Rule和TestName组合。
根据方法之前的文档,应该有测试名称。
下面是使用Junit 4.9 的测试用例注释包含规则的字段。这样的字段必须是公开的,而不是static,以及TestRule的子类型。语句传递给TestRule将运行任何Before方法,然后是Test方法,然后是finally any After方法,如果其中任何一个失败,则抛出异常
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 ...");
}
}
尝试使用org.junit.rules.TestName
类的@Rule
注释
@Rule public TestName name = new TestName();
@Test
public void test() {
assertEquals("test", name.getMethodName());
}