我在部署后每次都运行SeleniumWebdriver / TestNG / Maven / Java持续集成测试。有时用户界面中缺少一个元素,并且测试会抛出异常(后来在代码中捕获,因为在catch语句中我关闭了浏览器),因此构建被标记为成功。
奇怪的是,我之前在例外导致的测试中失败了,而且构建仍然被认为是成功的。
我如何配置我的maven pom.xml文件或jenkins构建,以便它标记每个抛出异常的测试,一个FAILURE?
编辑:在得到了robjohncox的回应后,我现在还有另外一件事需要做:
我究竟如何再次抛出错误?
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
quit(driver);
sendMail();
}
是这样做的吗?
throw e;
答案 0 :(得分:1)
我认为问题与您在代码中捕获异常的事实有关。因为您正在处理异常,所以它不会传播到您的测试运行器,因此测试运行器不会意识到抛出了异常。
在捕获异常并关闭浏览器之后,您应该重新抛出异常,然后测试框架会报告测试失败。代码看起来像这样:
public void myTestCase() {
try {
// Do the testing
}
catch(Exception ex) {
// Turn off the browser
throw ex
}
}