在行为方面,您如何仅运行场景?

时间:2014-11-20 01:31:04

标签: python bdd python-behave

我有一个'行为'功能,它有很多测试。

我只需针对开发需求运行特定方案。

我该怎么办?

(最好在命令行上)

3 个答案:

答案 0 :(得分:22)

要仅运行单个方案,您可以将-n与方案名称一起使用:

$ behave -n 'clicking the button "foo" should bar the baz'

我正在使用上面的单引号将方案的名称保留为-n一个参数。否则,shell会将方案名称的每个单词作为单独的参数传递。

答案 1 :(得分:18)

如果您要针对该功能运行单个测试,请使用-n--name标志,该标志似乎需要Scenario:之后的文字

behave -n 'This is a scenario name'

您可以使用-i--include标志运行要素文件,然后使用要素文件的名称。

behave -i file_name.feature

或:

behave --include file_name

您也可以使用--exclude标记排除:

behave -e file_name

有关详细信息,请查看command line arguments的文档。附录部分中隐藏了许多有用的信息。

注意:在我写这篇文章的时候,由于这个issue,它不适用于Python 3.6和Behave 1.2.5。 (更新:1.2.6已经解决了,但如果您使用的是python 3.4,则该版本无法从pip获得,因此您可以使用pip3 install git+https://github.com/behave/behave#1.2.6rc解决此问题。)

似乎你应该能够在Feature:之后传入-i标志的文本,但目前这不起作用。如果再次有效,有人会提醒我更新。我还鼓励人们查看wip标志,它允许你将@wip添加到测试中,然后-wip不仅会运行测试,还会允许打印/记录语句进行调试。

答案 2 :(得分:4)

标签提供了几个选项......

1)标记慢速,然后通过调用逆变量来避免

behave -t '~@slow_tag_name'  

2)然而,为了获得最大的灵活性,我个人建议使用唯一ID标记每个场景。例如我使用@YYYY_MM_DD_HHmm_Initials标签方案,因为它足够独特,可追溯性很有用/有趣。然后,您可以随时使用标记调用并使其运行Scenario,.e.g

behave @2015_01_03_0936_jh