Mar*_*pez 24 python bdd python-behave
我有一个"行为"功能,它有很多测试.
我只需要针对开发需求运行特定方案.
我该怎么做?
(最好在命令行上)
Lou*_*uis 26
要仅运行单个方案,您可以使用方案-n的名称:
$ behave -n 'clicking the button "foo" should bar the baz'
Run Code Online (Sandbox Code Playgroud)
我正在使用上面的单引号将方案的名称保留为一个参数-n.否则,shell将把方案名称的每个单词作为单独的参数传递.
Cyn*_*nic 20
如果要对该功能运行单个测试,请使用-n或者--name希望之后需要文本的标志Scenario:
behave -n 'This is a scenario name'
Run Code Online (Sandbox Code Playgroud)
您可以使用-i或--include标记然后使用要素文件的名称来运行要素文件.
behave -i file_name.feature
Run Code Online (Sandbox Code Playgroud)
要么:
behave --include file_name
Run Code Online (Sandbox Code Playgroud)
你也可以用--exclude旗子排除:
behave -e file_name
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看命令行参数的文档.附录部分中隐藏了许多有用的信息.
注意:在我写这篇文章的时候,由于这个问题,它不适用于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不仅会运行测试,还会允许print/logging语句进行调试.
标签提供了几个选项...
1)标记慢的,然后通过逆调用来避免,例如
behave -t '~@slow_tag_name'
Run Code Online (Sandbox Code Playgroud)
2) 但是,为了获得最大的灵活性,我个人建议使用唯一的 ID 标记每个场景。例如,我使用@YYYY_MM_DD_HHmm_Initials标签方案,因为它足够独特,并且可追溯性很有用/有趣。然后您始终可以简单地使用标签调用并让它运行场景,.eg
behave @2015_01_03_0936_jh
Run Code Online (Sandbox Code Playgroud)