java 如果测试中存在错误,则不会执行拆卸方法

2cmtqfgy  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(98)

我使用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);
}

注解有什么问题吗?我应该使用不同的注解吗?

jm2pwxwz

jm2pwxwz1#

你可以把你的AfterClass注解改成这样:@AfterClass(alwaysRun = true)。这将确保您的tearDown方法将始终运行,即使以前的方法失败。
文档可在here中找到

相关问题