我知道,在behave中,可以使用environment.py
来指定before_feature()
和after_feature()
函数,以便在每个功能之前或之后执行设置和拆卸代码
但是,是否有办法指定仅针对特定功能执行的自定义after功能
在我的在线搜索中,我发现有几页讨论了使用cucumber jvm执行此操作的可能方法,但没有讨论如何使用behave执行此操作:
举个例子,我想做一些类似的事情:
Feature: My feature
AfterFeature:
Then Database is reset
# Scenarios
我想到的一件事是,也许可以在“global”context
函数中查看after_feature()
,然后如果功能的名称与所需的名称匹配,就可以运行自定义代码。例如,类似于:
# In environment.py
def after_all(context):
if context.feature.name == 'feature_with_custom_teardown.feature':
# Do custom teardown
# Do regular teardown
然而,当我尝试在我的after_all()
函数中检查context
时,出于某种原因,该功能是None
,但这可能只是意味着我做错了什么
有几种方法可以做到这一点:
在
environment.py
中,您可以添加如下内容:您还可以使用功能标签而不是名称,如果您知道将有多个功能需要安装/拆卸,这将更加实用。因此,如果您的要素文件被标记为
,那么,对于拆卸部分,在
environment.py
中,您可以有:如果您选择
feature.name
方法而不是feature.tags
,请注意,您需要使用功能文件中定义的*名称*,即此部分Feature: *My feature*
,而不是文件名相关问题 更多 >
编程相关推荐