【问题标题】:Skip next tests when one fail serenity cucumber当一个失败的宁静黄瓜时跳过下一个测试
【发布时间】:2017-02-09 12:21:00
【问题描述】:

我正在使用 Serenity 和 Cucumber 编写自动化 Web 测试,我在文档中找不到一种在测试失败时忽略下一个测试的方法。

目前,如果某个步骤无法运行,则会忽略同一 SCENARIO 中的后续步骤,但会执行该功能中的后续场景。

我希望当测试失败时,跳过所有后续步骤和场景。

【问题讨论】:

    标签: automated-tests cucumber serenity-bdd cucumber-serenity


    【解决方案1】:

    Serenity 或 BDD 工具一般不支持该功能。场景旨在成为验收标准或业务规则的独立示例,而不是更大测试中的步骤

    【讨论】:

      【解决方案2】:

      详细说明 John Smart 所说的话:

      每个场景都应该能够通过,而不必依赖之前运行过的场景。

      更重要的是:众所周知,互联网连接有时是喜怒无常的。如果您的其中一个场景因等待页面加载时 Internet 中断而失败,您不希望跳过之后的所有场景(可能不受第一次失败的影响)。

      简而言之:

      使您的场景独立可减少自动化套件的脆弱性。

      如果失败则跳过场景是不好的做法(尤其是对于 Web 应用程序),因为互联网连接不是您可以依赖的常数。

      【讨论】:

      • 很抱歉唤醒线程,但这个论点虽然是正确的,但并不完整,因此不足以拒绝这种做法。您只谈论临时故障,但有些故障是确定性的:如果您为连接存储了错误的密码,那么您的所有测试都将失败。继续测试没有意义。尤其是当我们谈论验收测试时,它往往比单元测试更难执行。当然,在失败后跳过测试,不管它是什么,都可能不是正确的方法。但是在特定类型的失败后跳过测试是相关的。
      • @Matthieu 放置任何东西以使其余测试失败的问题在于,它可能只是一个不稳定的测试,我们应该牢记这一点来编写测试。这可能是连接的错误密码,但如果你依赖它,你可以在你的 beforeall 钩子中检查它(作为健康检查) - 将它放在测试级别并不是你拥有的最佳选择场景
      猜你喜欢
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多