Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取JUNIT中@Before中当前正在执行的@Test方法的名称_Java_Junit - Fatal编程技术网

Java 获取JUNIT中@Before中当前正在执行的@Test方法的名称

Java 获取JUNIT中@Before中当前正在执行的@Test方法的名称,java,junit,Java,Junit,我想获取@Before方法中当前正在执行的TestCase方法的名称。 范例 如前所述,尝试使用@Rule和TestName组合 按照前面的方法,应该有测试名称 注释包含规则的字段。这样的字段必须是公共的,而不是公共的 静态和TestRule的子类型。该声明被传递给了 TestRule将运行任何Before方法,然后是测试方法,然后是 最后是any After方法,如果其中任何一个失败,则引发异常 下面是使用JUnit4.9的测试用例 public class JUnitTest {

我想获取@Before方法中当前正在执行的TestCase方法的名称。 范例

如前所述,尝试使用@Rule和TestName组合

按照前面的方法,应该有测试名称

注释包含规则的字段。这样的字段必须是公共的,而不是公共的 静态和TestRule的子类型。该声明被传递给了 TestRule将运行任何Before方法,然后是测试方法,然后是 最后是any After方法,如果其中任何一个失败,则引发异常

下面是使用JUnit4.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());
}

?在测试类中添加一个字段
previousName
,并在每个测试方法的末尾用After设置其值
@Rule public TestName name = new TestName();

@Test 
public void test() {
    assertEquals("test", name.getMethodName());
}