4

我有 SeleniumWebdriver/TestNG/Maven/Java 持续集成测试,每次部署后都在运行。有时用户界面中缺少一个元素并且测试会抛出异常(稍后会在代码中捕获,因为在 catch 语句中我关闭了浏览器),因此构建被标记为成功。

奇怪的是,我之前也因异常导致的测试失败,而构建仍然被认为是成功的。

如何配置我的 maven pom.xml 文件或 jenkins 构建,以便它标记每个引发异常的测试,失败?

编辑:得到 robjohncox 的回复后,我现在有另一件事需要做:

我究竟该如何再次抛出错误?

} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    quit(driver);
    sendMail();
}

是这样做的吗?

    throw e;
4

1 回答 1

1

我认为问题与您在代码中捕获异常有关。因为您正在处理异常,所以它不会传播到您的测试运行程序,因此测试运行程序不知道抛出了异常。

捕获异常并关闭浏览器后,您应该重新抛出异常,然后测试框架应报告测试失败。代码看起来像这样:

public void myTestCase() {
    try {
        // Do the testing
    }
    catch(Exception ex) {
        // Turn off the browser
        throw ex
    }
}
于 2013-08-06T15:34:51.157 回答