我有几个简单的测试,看起来像这样。
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,但这也不会关闭驱动程序窗口。
我做错了什么?如何在遇到错误后生成报告,而不必“出现”以手动关闭打开的窗口?
答案 0 :(得分:0)
你需要把它放在try / catch和catch块中
try{
}catch(Exception e){
Assert.fail(e.getMessage());
}finally{
// CLOSE ANY OPEN RESOURCES HERE !!!!
}
如果您有任何开放资源,请不要忘记在finally块中关闭它们。