如何从另一个方案中的一个步骤执行一个方案?

时间:2018-12-21 15:09:51

标签: django python-3.x python-behave

下面是我要在另一个方案中执行一个方案的示例。 我该怎么办?
我已经知道我可以使用execute_steps()执行其他步骤。

我的环境: macOS v10.14.1,Docker v18.06.1-ce,Django v2.1.4,行为v1.2.6,行为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可从方案名称中获取方案并将它们分为步骤?

2 个答案:

答案 0 :(得分:0)

否。此行为是故意进行的,以消除在场景B通话期间场景A掉下的情况下发生冲突。

行为API只有一种方法可以调用当前步骤中的另一步骤:execute_steps()

官方教学课程,其确切示例:macro step

答案 1 :(得分:0)

不幸的是,您不能从方案B调用方案A。行为不支持类似的功能。但是,您要执行的是在方案B的第一步中执行方案A中定义的所有步骤。我们只需在步骤文件中创建专用步骤来执行此操作。

  

@given(“方案A的所有步骤都已完成”)   def step_execute_scenario_A(上下文):   context.execute_steps(u’’              给定步骤〜              当一步〜              然后踩〜一个“’”

方案:方案B

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