我正在使用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.");
}
我想知道的是,"按钮是否可以点击"知道调用它的测试名称的方法?
我想替换" Assert.fail ..."使用我自己的函数创建一个文本文件,我将用它来记录我想要的信息,这将需要包括失败的测试名称(在这种情况下" testLogin)。
答案 0 :(得分:3)
一种选择是在某处设置当前测试的名称,可能是静态变量。如何为TestNG做到这一点被描述为here。
public class Test {
@BeforeMethod
public void handleTestMethodName(java.lang.reflect.Method method) {
GlobalVariables.currentTestName = method.getName();
}
...
}