【问题标题】:How to control step definition file cucumber annotation only applicable to one step definition file?如何控制步骤定义文件黄瓜注释只适用于一个步骤定义文件?
【发布时间】:2020-03-02 18:04:40
【问题描述】:

我正在尝试同时运行两个步骤定义文件(黄瓜),因为我在一个步骤定义文件中应用了@Before 注释。当我运行这些时,注释同时应用于两者并给出结果。如何停止或控制注释仅适用于一个步骤定义文件?

【问题讨论】:

  • 你的意思是只为一个功能/场景应用@before,而不是所有功能/场景?
  • 感谢您的回复..supputuri,是的。我只应用了一个场景,应该只应用一个步骤定义文件..但它同时应用了两个步骤定义文件..并且两个步骤定义文件只在同一个包中。
  • 你好@MADHUkandukuri,你的问题不是很清楚。您能否更具体地说明您在寻找什么?你是如何在步骤定义上应用标签的?功能文件有场景,步骤定义文件会有它们的实现。
  • 对不起..对于混淆..我正在将步骤定义文件中的@Before注释应用到第一步定义文件中的方法。我一次运行两步def文件。这里 pblm 是在注释之前也应用第二步 def 文件方法..所以我该如何控制这个..?所以只适用于fist step def only
  • 您使用哪种语言编写步骤定义?

标签: cucumber tdd bdd


【解决方案1】:

当 Cucumber 开始执行时,所有的步骤定义文件都会被解析。 Cucumber 然后使用您的功能文件中的场景来确定要调用哪些步骤定义。没有“运行步骤定义文件”的概念。

Before 挂钩将在 Cucumber 执行的每个场景之前运行。场景写入哪个功能文件或挂钩定义在哪个步骤定义文件中没有区别。

您可能需要考虑using a Background instead,特别是如果功能文件的非技术读者会发现它描述的行为很重要。 Background 在写入相同功能文件的每个场景之前运行。

或者,您可以使用conditional (or tagged) hooks 完成您想要的操作。条件Before 挂钩仅在场景具有满足挂钩标签表达式的标签时才会运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多