当前位置: 首页 > 知识库问答 >
问题:

如果initial@then无法实现自动化,Cucumber将停止执行

宋新知
2023-03-14

我使用cucumber框架进行测试。我有三个@then条件,如果第一个@then条件失败,它不会进入第二个@then条件。我该如何克服?

   @Then("^I check first result$")
public void verifyFirstResult() {
    Assert.assertEquals(results.get("first"), true);    --> This gets failed as its returning false.    
}


@Then("^I check second result$")
public void verifySecondResult() {
    Assert.assertEquals(results.get("second"), true);  --> This is not even triggering, the execution stops at the first method itself 
}


 @Then("^I check third result$")
public void verifyThirdResult() {
    Assert.assertEquals(results.get("third"), true);  
}

我怎样才能克服这个问题?

共有2个答案

都阳
2023-03-14

你能把这个问题弄清楚吗?1) 您是否试图同时检查这三个条件,以便在其中任何一个(无论哪一个)失败时测试将失败?2) 或者,您是否有兴趣知道在发生错误时哪个特定条件失败?

袁单鹗
2023-03-14

正如所写的步骤,你无法克服这个问题。这就是cucumber的工作原理。如果某个步骤失败,将跳过所有后续步骤,直到场景结束。

如果要在一个步骤中检查多个条件,则可以创建一个检查多个条件的“复合”步骤,这将导致这一步骤失败。这通常通过数据表完成:

Then the results should be:
    | Field  | Value |
    | First  | true  |
    | Second | true  |
    | Third  | true  |

参考资料:

  • https://cucumber.io/docs/gherkin/reference/#data-表格

 类似资料:
  • 我有一个cucumber框架,数据按预期发送,但结果没有被正确读取。我怀疑是因为答案没有出现在计算器的文本框中: org.junit.比较失败:预期:3实际:0 功能文件功能:谷歌计算器应该计算正确的计算 场景概述:添加数字鉴于我在谷歌计算器页面上,当我将数字“”添加到数字“”时,我应该会得到一个答案“” 场景大纲:减去数字给定我在谷歌计算器页面当我减去数字“”到数字“”然后我应该得到“”的答案

  • 我正在尝试使用cucumber标签实现并行执行。我在下面附加了我的功能文件,而不是使用多个功能文件,我正在尝试使用cucumber标签实现我的场景的并行执行 我知道我们可以使用特性文件来实现并行执行,但我希望使用cucumber标记来并行执行基于区域设置的标记。每个标签都与现有客户进行了相关测试。 注意:我使用的是serenity BDD 示例功能(sample.feature

  • 我通过创建固定数量的线程来使用执行器服务来进行HTTP GET数据检索。 当Tomcat停止时,我们会出现以下错误: 严重:web应用程序[/viewer]似乎已启动名为[ThreadExecutor_51616156]的线程,但未能停止该线程。这很可能会造成内存泄漏。 这是真的吗?在没有这些服务错误的情况下,如何正确停止tomcat。

  • 我有一个maven项目,一个独立的JPA工具。 这个主项目依赖于另一个包含所有实体类的maven项目。 但是,JPA似乎不会自动找到我的实体。我的日食项目 我的坚持.xml: 它位于目标/类/META-INF中。 使用实体时的错误是:

  • 我有一个在手表上运行的应用程序,如果有来电,它会在操作系统的来电屏幕上显示一个半透明的覆盖活动。 95%的时间这很好,但其余5%的时间我的活动在来电时看不到。区别在于,当它不起作用时,我的活动的onPause()和onStop()会在其onCreate()之后立即调用,即。 成功显示时记录: 不显示时记录: 查看它如何直接从onResume()跳到onPause()。我对它这样做的猜测是,这可能是

  • 问题内容: 我使用以下代码在Python中启动并关闭 在脚本结束执行后,我仍然在Mac活动监视器中找到的实例。实际上,每次我运行脚本时,都会创建一个新进程。 我应该如何关闭驱动程序? 问题答案: 不保证该方法释放与驱动程序实例关联的所有资源。请注意,这些资源包括但不限于驱动程序可执行文件(在这种情况下为PhantomJS)。该方法旨在释放驱动程序的所有资源,包括退出可执行进程。