如何获取在测试拆解方法中运行的测试方法的名称?

2022-09-01 06:25:17

基本上,我有一个拆卸方法,我想将其记录到刚刚运行的测试的控制台。我该如何获取该字符串?

我可以获取类名,但我想要刚刚执行的实际方法。

public class TestSomething {

    @AfterMethod
    public void tearDown() {
        System.out.println("The test that just ran was: " + getTestThatJustRanMethodName());
    }

    @Test
    public void testCase() {
       assertTrue(1 == 1);
    }
}

...应该输出到屏幕:“刚刚运行的测试是:testCase”

但是,我不知道实际上应该是什么魔法。getTestThatJustRanMethodName


答案 1

在@AfterMethod中声明一个 ITestResult 类型的参数,TestNG 将注入它:

@AfterMethod
public void afterMethod(ITestResult result) {
  System.out.println("method name:" + result.getMethod().getMethodName());
}

答案 2

如果要在执行测试之前获取方法名称,可以使用以下命令:

import java.lang.reflect.Method;

@BeforeMethod
public void nameBefore(Method method)
{
    System.out.println("Test name: " + method.getName());       
}

推荐