如何从另一个场景中的步骤执行场景?

How to execute a scenario from a step in another scenario?

下面是我想在另一个场景中执行一个场景的例子。 我该怎么做?
我已经知道我使用 execute_steps().

执行其他步骤

我的环境: macOS v10.14.1,Docker v18.06.1-ce,Django v2.1.4,behave v1.2.6,behave-django v1.1.0

Scenario: scenarioA
    Given ~
    When ~
    Then ~

Scenario: scenarioB
    Given scenarioA is completed # I want to exexute scenarioA here.
    When ~
    Then ~

剧本名称中有api到运行的剧本吗?
有没有api从场景名称中获取场景并分步的?

没有。这种行为是故意的,以消除场景A在场景B调用期间跌倒的情况下的碰撞。

Behave API 只有一种方法可以从当前步骤调用另一个步骤:execute_steps()

官方教程,具体示例:macro step

不幸的是,您不能从场景 B 调用场景 A。Behave 不支持类似的东西。但是您在这里想要的是在场景 B 的第一步中执行场景 A 中定义的所有步骤。我们只需在步骤文件中创建一个专用步骤即可。

@given(‘all steps of scenario A is completed’) def step_execute_scenario_A(context): context.execute_steps(u‘’’ Given step~ A When step~ A Then step~ A ‘’’)

场景:场景B

Given all steps of scenario A is completed
When ~
Then ~