我使用Selenide/Selenium进行了自动化测试。有一个使用@AfterClass的拆卸方法,但在测试中出现错误时不会执行。
@BeforeSuite
public void init() {
}
@AfterClass
public void tearDown() {
Write to html file
extentManager.getExtentReports().flush();
emailManager.sendEmail();
}
@Test
public void testHome() {
extentTest = extentManager.getExtentReports().createTest("Home Test");
$x("//*[@id=\"__next\"]/div/div[4]/div/ul/li[1]/a").hover();
$x("//*[@id=\"navbarNavDropdown\"]/ul/li[1]/a").click();
$x("//*[@id=\"navbarNavDropdown\"]/ul/li[1]/a").shouldHave(Condition.exist);
$x("//*[@id=\"__next\"]/div/div[4]/div/ul/li[1]/a").shouldHave(text("HOME"));
$x("//*[@id=\"navbarNavDropdown\"]/ul/li[2]/div[1]/a").shouldHave(Condition.exist);
$x("//*[@id=\"navbarNavDropdown\"]/ul/li[3]/div[1]/a").shouldHave(Condition.exist);
}
注解有什么问题吗?我应该使用不同的注解吗?
1条答案
按热度按时间jm2pwxwz1#
你可以把你的AfterClass注解改成这样:
@AfterClass(alwaysRun = true)
。这将确保您的tearDown方法将始终运行,即使以前的方法失败。文档可在here中找到