从Python中的行为表中选择行

从Python中的行为表中选择行,python,bdd,python-behave,Python,Bdd,Python Behave,我正在使用behave框架在Python中开发测试。目前,我有一个场景大纲和下面的示例。我希望能够在任何时候选择其中一个示例,并在该示例上运行测试功能。我该怎么做呢?现在,每当我从命令行调用behave时,它都会针对我在场景大纲下的Examples behave表中的每个示例条目执行场景 编辑:我附上了一个截图,让事情更清楚 此示例来自behave的文档。如果我们看一下消费电子表下的内容,我们会看到两行,其中场景大纲将运行两次。假设我想测试其中一个例子,我们有20个例子,意思是20行。如果我想要

我正在使用behave框架在Python中开发测试。目前,我有一个场景大纲和下面的示例。我希望能够在任何时候选择其中一个示例,并在该示例上运行测试功能。我该怎么做呢?现在,每当我从命令行调用behave时,它都会针对我在场景大纲下的Examples behave表中的每个示例条目执行场景

编辑:我附上了一个截图,让事情更清楚


此示例来自behave的文档。如果我们看一下消费电子表下的内容,我们会看到两行,其中场景大纲将运行两次。假设我想测试其中一个例子,我们有20个例子,意思是20行。如果我想要的示例是表中的最后一个条目,那么我如何才能只选择其中一个,而不是运行我的行为测试,并且必须等待场景大纲完成所有案例。

我现在能想到的唯一选项是指定行为的精确行:行为混合器。功能:12


例如,SpecFlow允许您为示例块指定标记,不幸的是,behave for python不适用。

我这样做的方式是使用不同名称的多个“示例”表。然后在调用behave时传递-name参数。

使用-name参数,但指定所需示例块的数量以及其中所需示例的数量。两个数字都从1开始计算

因此,对于本场景大纲:

Scenario Outline: Blenders
   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        |

 Examples: Consumer Electronics
   | thing         | other thing |
   | iPhone        | toxic waste |
   | Galaxy Nexus  | toxic waste |
要仅将Galaxy Nexus放入搅拌器,请执行以下操作:

行为-名称“Blenders-@2.2”Blenders.feature


我通常从运行整个功能开始,然后通过复制粘贴一个特定的名称“…”来缩小范围,因为behave总是以这种精确的格式响应每个遇到的场景。

您能举个例子吗?我不知道你所说的例子是什么意思?@idjaw我为你附上了一张照片和描述