我有几个看起来像这样的简单测试。
public class My1Test extends AutoBaseFunctions{
@Test
public void test1(){
startDriver(STARTPAGE,DRIVER2USE);
schoolLogin("XXX", "XXX");
toolbarNav("toolsSingle","Manage Users");
getElmObject("input[type='checkbox'][name='includeUsersHiddenFromDirectory']",loctype.CSS).click();
getElmObject("Searchxx",loctype.LINKTEXT).click();
driver.quit();
//driver.close();
}
}
我遇到的问题是:在搜索按钮上执行 findElement 时,我故意导致发生 NoSuchElement 异常。当我运行 mvn surefire-report:report 命令时,输出在此处停止
直到我手动关闭打开的窗口 - 只有这样它才完成生成报告。
我知道当脚本出错时它会死掉并且永远不会到达 driver.quit 行。但是,如果我将它放在 try/catch 块中,报告会显示测试已通过,并且不会报告错误详细信息。我还尝试将其作为@Suite 测试的一部分并使用@After/@AfterClass,但这也不会关闭驱动程序窗口。
我究竟做错了什么?如何在遇到错误后生成报告,而无需“在场”手动关闭打开的窗口?