Behave 钩子
Behave的设置和拆除功能是在一个叫environment.py的文件中实现的,该文件在包含步骤文件夹的同一个目录中。设置功能包括–浏览器打开、数据库连接、配置等等。
拆除功能包括关闭浏览器,终止数据库连接,逆转变化,等等。
environment.py文件包含以下函数 −
- before_feature(context, feature) – 在每个功能之前执行。
-
before_scenario(context, scenario) – 在每个场景之前执行。
-
before_step(context, step) – 在每个步骤之前执行。
-
before_tag(context, tag) – 在每个标签之前执行。
-
before_all(context) – 事先执行所有内容。
-
after_feature(context, feature) – 在每个特征之后执行。
-
after_scenario(context, scenario) – 在每个场景结束后执行。
-
after_step(context, step) – 执行每一个步骤。
-
after_tag(context, tag) – 执行每个标签的发布。
-
after_all(context) – 执行发布所有内容。
上述函数在Behave中作为钩子使用。项目结构应该是这样的
带有钩子的特性文件(Payment.feature) 。
带钩子的Feature文件(Payment.feature)如下:
Feature − Payment Process
Scenario − Verify transactions
Given user makes a payment of 100 INR And user makes a payment of 10 Dollar
带钩子的特征文件(Payment1.feature )。
下面是带有钩子的Payment1.feature的特征文件 –
Feature − Administration Process
Scenario − Verify admin transactions
Given user is on admin screen
相应的步骤实现文件
The step implementation file is as follows −
from behave import *
from parse_type import TypeBuilder
parse_amt = TypeBuilder.make_choice(["100", "10"])
register_type(Amt=parse_amt)
parse_curr = TypeBuilder.make_choice(["INR", "Dollar"])
register_type(Curn=parse_curr)
@given("user makes a payment of {n:Amt} {t:Curn}")
def step_payment(context, n, t):
pass
@given('user is on admin screen')
def step_admin(context):
pass
第4步 – environment.py文件中的钩子
environment.py 文件中的钩子如下。
# before all
def before_all(context):
print('Before all executed')
# before every scenario
def before_scenario(scenario, context):
print('Before scenario executed')
# after every feature
def after_feature(scenario, context):
print('After feature executed')
# after all
def after_all(context):
print('After all executed')
输出
运行特征文件后得到的输出结果如下