Cucumber中是否可以从其他特性调用功能?

4
我希望创建一个功能文件,它可以调用其他的功能文件。这是否可行呢?例如,我希望有一个高级别的功能文件,它可以像下面这样说(只是正确的格式):
call feature1
call feature2
call feature3

每个调用都会进入一个包含功能定义的特性文件,例如:

Scenario Outline:
  Given this
  Then that
  And more

因此,对于这个例子,您将有1个高级功能文件和3个低级功能文件。每个子功能可能都是一个场景概述。
谢谢。
1个回答

5
没有Cucumber功能可以让你从另一个特性运行一个特性。你甚至不能从另一个场景调用一个场景。(虽然在早期的Cucumber版本中可以这样做,但已被删除。)
然而,你可以通过以下几种方式在场景之间共享步骤列表:
- 通过将它们放入Background部分,在特性文件中的每个场景之前运行一系列步骤: https://www.relishapp.com/cucumber/cucumber/docs/background - 编写一个调用一系列低级步骤的高级步骤: Reuse Cucumber steps 也许你可以重构你的问题,使用其中一种方法。

我可能可以在其他地方使用步骤调用,但它不适合我现在正在尝试做的事情。我遇到的问题是,如果我在文件中放置多个场景轮廓,我无法使其正常工作。我编写部分的顺序是:资产、特性、场景轮廓、示例、场景轮廓、示例。我需要以不同的顺序编写吗?第一个场景轮廓可以正常运行,但一旦到了第二个,它只打印出示例的第一行,然后说跳过了轮廓。 - user2869231
你的特性文件结构看起来没问题。我建议你开一个新问题,把你的特性文件放进去,这样每个人都可以看一下。 - Dave Schweisguth
+1 链接到 https://dev59.com/UXNA5IYBdhLWcg3wjOlS,这可能是很多人在寻找的。 - emery

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接