【问题标题】:How to add breakpoints to .feature files如何向 .feature 文件添加断点
【发布时间】:2018-06-17 19:18:03
【问题描述】:

作为开发人员 我想在功能文件中放置断点 这样我就可以调试功能/场景/步骤

你们中有人用 Behave 或 Cucumber 实现过这个功能吗?

【问题讨论】:

  • 为断点写一个步骤。

标签: debugging automation cucumber bdd qa


【解决方案1】:

我不能说我曾经能够在功能文件中放置断点。相反,我将它们放在步骤文件中,因此当该步骤运行时,您可以验证它是否完成了工作。在功能文件和步骤文件之间来回切换很多,但它有效

【讨论】:

    【解决方案2】:

    我只想指出,在 2018 年,功能文件的使用量远远超过 Behave 或 Cucumber [即PHP的代码接收]。 “Gherkin”应该是一种业务可读的 DSL,而“断点”的概念实际上并不适用于该领域。我会说在 Gherkin 功能文件中放置断点在定义上是不可能的。如果你愿意,你当然可以这样做,去做吧,但没有标准的方法,你可能会在大型组织或团队中混淆。

    【讨论】:

    • 这种方式已经有很长一段时间了,不仅仅是在 2018 年。Given, When, Then 语法是由 @tastapod 和 Chris Matts 在 2003 年创建的,早于 Cucumber 和名称“Gherkin”(以它的名字命名,是一种小的腌黄瓜)。话虽如此,我们一直能够按照其他答案中的建议在相关代码中放置断点,并且某些 IDE 确实支持在功能文件本身上设置断点。
    【解决方案3】:

    你不能给.feature文件下断点,因为它是一个纯文本文件。相反,您可以在实现 BDD 步骤的测试步骤中放置断点。

    示例
    When I click button "save" Then saved page opened

    您需要进入该步骤并看到类似的内容:
    public void iClickButton(String buttonName) { getButtonByName(buttonName).click(); }

    您可以在方法iClickButton 中放置断点并对其进行调试。
    这就是您可以在 BDD 样式中调试执行的方式。

    【讨论】:

      【解决方案4】:

      首先你需要在步骤定义中添加调试,而不是在功能文件中

      现在,您正在通过 maven 命令运行它,例如:

      mvn 全新安装

      但你需要使用 junit 或 testng 来运行它。

      在您的步骤定义中放置一个调试点,并在调试部分以 junit/testng 运行项目

      如果您仍然需要使用 maven 运行它,您可以在 maven 命令中尝试以下参数

      -Dmaven.surefire.debug test -DforkCount=0 test
      

      【讨论】:

        猜你喜欢
        • 2015-12-08
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 2016-11-03
        • 2012-09-13
        • 2017-03-27
        相关资源
        最近更新 更多