参数化行为特征,pytest样式

时间:2018-04-04 10:16:21

标签: python bdd python-behave

我看起来反复运行特征测试,但每个参数都有不同的参数,有点像pytest参数化https://docs.pytest.org/en/latest/reference.html#pytest-mark-parametrize-ref

我无法找到任何暗示可以在一次行为中完成的事情。这是否必须在外部完成,例如通过一个bash脚本,调用多次,每次运行都使用例如userdata http://behave.readthedocs.io/en/latest/behave.html?highlight=userdata#cmdoption-define传入参数,还是有其他选择?

实际参数本身也是在运行时动态找到的,在一组动态确定的参数集上运行所有测试。

1 个答案:

答案 0 :(得分:4)

几乎所有Gherkin语法BDD工具(如Behave,Cucumber等)都支持一个名为“Scenario Outline”的东西,它可以做你想要的。 From these examples here:

Feature: Scenario Outline (tutorial04)

  Scenario Outline: Use Blender with <thing>
    Given I put "<thing>" in a blender
    When I switch the blender on
    Then it should transform into "<other thing>"

    Examples: Amphibians
        | thing         | other thing |
        | Red Tree Frog | mush        |
        | apples        | apple juice |

    Examples: Consumer Electronics
        | thing         | other thing |
        | iPhone        | toxic waste |
        | Galaxy Nexus  | toxic waste |

并实施以下步骤:

@given('I put "{thing}" in a blender')
def step_given_put_thing_into_blender(context, thing):
    context.blender = Blender()
    context.blender.add(thing)

非常简单!