创建节点时,我试图在报告中记录我的调用方法名称。

我在getname()中用Method.GetMethodNameITestresult进行了尝试,但没有找到正确的方法。

public static class Reports
{
    public static void CreateNode(String Description)
    {
        test.createNode(Description);
    }
}



public static Class ModuleClass
{
    public static void Login()
    {
        Reports.CreateNode( ???": method started");
    }
}


在问号区域,我想要打印在报告中的方法名称。

像这样的输出-

Login : method started in report.


它与日志无关。它基于我从任何特定模块的测试库中调用的任何方法,我们假设有一种方法可以填充如下形式的表格:

public static Class ModuleClass
    {
        public static void FormFilled()
        {
            Reports.CreateNode( ???": method started");
        }
    }


因此,当我在执行类中调用此方法时,如下所示:

@Test
public void SavingForm()
{
    ModuleClass.FormFilled();
}


然后在报告中执行后,我应该得到:

output FormFilled : method started

最佳答案

我通过使用以下行获取输出:

新的Object(){}。getClass()。getEnclosingMethod()。getName()

public static Class ModuleClass
    {
        public static void FormFilled()
        {
            Reports.CreateNode( new Object(){}.getClass().getEnclosingMethod().getName()
 + ": method started");
        }
    }

08-04 14:42