我试图在throw异常方法之外执行@Test。我能够执行@Test方法的唯一方法是,如果我在throws异常方法中调用它们,这会使@Test方法失败。请看我的代码。
public class Communication extends WebPortalLogin {
public static String driverPath = "C:/";
public static WebDriver driver;
@BeforeTest
public void Circulars() throws Exception {
ExcelUtils.setExcelFile("C://TestData//TestData.xlsx", "Sheet1");
String username = ExcelUtils.getCellData(1, 1);
String password = ExcelUtils.getCellData(1, 2);
driver = WebPortalLogin.login(username, password);
circulars(driver);
option_list(driver);
close_browser();
}
@Test
public void circulars(WebDriver driver) {
WebPortalNGFile.communication(driver).click();
WebPortalNGFile.circulars(driver).click();
}
@Test
public void option_list(WebDriver driver) {
WebPortalNGFile.communication(driver).click();
WebPortalNGFile.option_list(driver).click();
}
@Test
public void close_browser() {
driver.close();
}
}
答案 0 :(得分:0)
在你的课堂上,首先执行的是你的@BeforeTest方法。 @BeforeTest的想法实际上是在每个@Test之前执行一个方法。
现在,出于某种原因,你试图从你的@BeforeTest方法中调用你的@Test circulars()方法,这种方法根本不起作用。
接下来,为什么要在close_browser()和option_list()方法中添加@Test注释?看起来它们只是辅助方法,不需要@Test注释。
阅读有关@BeforeTest和@Test注释的更多信息。
以下是对您的代码的一些模糊更正,可能会对您有所帮助。
public class Communication extends WebPortalLogin{
public static String driverPath = "C:/";
public static WebDriver driver;
@Test
public void Circulars() throws Exception{
ExcelUtils.setExcelFile("C://TestData//TestData.xlsx", "Sheet1");
String username = ExcelUtils.getCellData(1, 1);
String password = ExcelUtils.getCellData(1, 2);
driver = WebPortalLogin.login(username, password);
circulars(driver);
option_list(driver);
close_browser(driver);
}
public void circulars(WebDriver driver){
WebPortalNGFile.communication(driver).click();
WebPortalNGFile.circulars(driver).click();
}
public void option_list(WebDriver driver){
WebPortalNGFile.communication(driver).click();
WebPortalNGFile.option_list(driver).click();
}
public void close_browser(WebDriver driver){
driver.close();
} }