我看起来反复运行特征测试,但每个参数都有不同的参数,有点像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传入参数,还是有其他选择?
实际参数本身也是在运行时动态找到的,在一组动态确定的参数集上运行所有测试。
答案 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)
非常简单!