首页 > 解决方案 > 黄瓜即使一步失败也继续执行

问题描述

我想继续执行我的场景,即使在黄瓜报告中有些失败,它应该将其显示为失败但不应该停止执行。

我尝试使用软断言类并使用它

 SoftAssertion sa = new SoftAssertion();
if (response.getStatusCode() == 200) {
                Sytem.out.println("pAASED")
            } else {
                sa.fail("this is the failure");
            }

但是假设我有两种情况,第一种情况的响应不是 200,否则它将阻塞并导致该情况失败

java.lang.AssertionError: this is the failure
    at org.junit.Assert.fail(Assert.java:88)

它甚至不适合第二种情况。有人可以帮助我如何达到预期的结果(即它应该继续执行,而不管一个失败)

标签: javacucumberassertion

解决方案


这里有两个不同的东西。

  1. 错误代码作为响应
  2. 例外

根据Oracle 网站的异常定义:

异常是在程序执行期间发生的事件,它破坏了程序指令的正常流程。

这样,异常与正常的执行流程完全不同。因此,如果您想在出现异常的情况下继续进行,则需要使用异常处理的概念。如下:

try {
    response = yourMethodCall();
} catch (Exception e) {
    log.error(e)
}

在上面的示例代码中:

  1. 替换yourMethodCall()为实际的方法调用。
  2. 捕获适当的最小异常。(在你的情况下应该是AssertionError
  3. 考虑记录您的异常以便更好地调试,就像在代码中一样。为此创建日志对象。

推荐阅读