Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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 是否可以从被调用的方法中写入testng测试的名称?_Java_Selenium - Fatal编程技术网

Java 是否可以从被调用的方法中写入testng测试的名称?

Java 是否可以从被调用的方法中写入testng测试的名称?,java,selenium,Java,Selenium,我正在使用Java(TestNG和IntelliJ)运行Selenium测试,目前正在开发我的报告框架。 我的测试设置如下所示: @Test public void testLogin(){ myKeyword.login(); } myKeyword是我创建的一类关键字,带有一个名为login的方法。login关键字将如下所示: public void login(){ myPage.typeInTextBox("Username"); myPage.typeInTextBox(

我正在使用Java(TestNG和IntelliJ)运行Selenium测试,目前正在开发我的报告框架。 我的测试设置如下所示:

@Test
public void testLogin(){
  myKeyword.login();
}
myKeyword是我创建的一类关键字,带有一个名为login的方法。login关键字将如下所示:

public void login(){
  myPage.typeInTextBox("Username");
  myPage.typeInTextBox("Password");
  myPage.buttonClick("Login");
}
我的验证内置于方法“buttonClick”和“typeInTextBox”中。它们看起来像:

try{
  driver.findelement(By.id("myButton")).click();
}
catch (Exception e){
  Assert.fail("Could not click on the button.");
}
我想知道的是,“buttonClick”方法是否可能知道调用它的测试的名称


我想用我自己的函数替换“Assert.fail…”,该函数将创建一个文本文件,我将使用该文件记录我想要的信息,其中需要包括失败的测试的名称(在本例中为“testLogin”).

一个选项是在某个地方设置当前测试的名称,可能是一个静态变量


来自您的异常的stacktrace?我没有异常。这只是我代码中的一个片段,我仍在试图找出如何将测试名称传递给方法“buttonClick”。非常感谢,我刚才看到的是来自Dmitri的相同问题和答案。您的解决方案正是我想要的。
public class Test { 
    @BeforeMethod
    public void handleTestMethodName(java.lang.reflect.Method method) {
        GlobalVariables.currentTestName = method.getName(); 
    }
...
}