我有一个'行为'功能,它有很多测试。
我只需针对开发需求运行特定方案。
我该怎么办?
(最好在命令行上)
答案 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