【发布时间】:2018-06-17 19:18:03
【问题描述】:
作为开发人员 我想在功能文件中放置断点 这样我就可以调试功能/场景/步骤
你们中有人用 Behave 或 Cucumber 实现过这个功能吗?
【问题讨论】:
-
为断点写一个步骤。
标签: debugging automation cucumber bdd qa
作为开发人员 我想在功能文件中放置断点 这样我就可以调试功能/场景/步骤
你们中有人用 Behave 或 Cucumber 实现过这个功能吗?
【问题讨论】:
标签: debugging automation cucumber bdd qa
我不能说我曾经能够在功能文件中放置断点。相反,我将它们放在步骤文件中,因此当该步骤运行时,您可以验证它是否完成了工作。在功能文件和步骤文件之间来回切换很多,但它有效
【讨论】:
我只想指出,在 2018 年,功能文件的使用量远远超过 Behave 或 Cucumber [即PHP的代码接收]。 “Gherkin”应该是一种业务可读的 DSL,而“断点”的概念实际上并不适用于该领域。我会说在 Gherkin 功能文件中放置断点在定义上是不可能的。如果你愿意,你当然可以这样做,去做吧,但没有标准的方法,你可能会在大型组织或团队中混淆。
【讨论】:
你不能给.feature文件下断点,因为它是一个纯文本文件。相反,您可以在实现 BDD 步骤的测试步骤中放置断点。
示例When I click button "save"
Then saved page opened
您需要进入该步骤并看到类似的内容:public void iClickButton(String buttonName) {
getButtonByName(buttonName).click();
}
您可以在方法iClickButton 中放置断点并对其进行调试。
这就是您可以在 BDD 样式中调试执行的方式。
【讨论】:
首先你需要在步骤定义中添加调试,而不是在功能文件中
现在,您正在通过 maven 命令运行它,例如:
mvn 全新安装
但你需要使用 junit 或 testng 来运行它。
在您的步骤定义中放置一个调试点,并在调试部分以 junit/testng 运行项目
或
如果您仍然需要使用 maven 运行它,您可以在 maven 命令中尝试以下参数
-Dmaven.surefire.debug test -DforkCount=0 test
【讨论】: