我想在@Before方法中获取当前正在执行的TestCase方法的名称。 实施例
public class SampleTest()
{
@Before
public void setUp()
{
//get name of method here
}
@Test
public void exampleTest()
{
//Some code here.
}
}
答案 0 :(得分:19)
正如here所述,尝试使用@Rule和TestName组合。
根据documentation之前的方法应该有测试名称。
注释包含规则的字段。这样的领域必须是公开的,而不是 static,以及TestRule的子类型。声明传递给了 TestRule将运行任何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 ...");
}
}
答案 1 :(得分:2)
尝试在@Rule
类
org.junit.rules.TestName
注释
@Rule public TestName name = new TestName();
@Test
public void test() {
assertEquals("test", name.getMethodName());
}