Behave 简明教程

Behave - Hooks

Behave 设置和取消设置函数在名为 environment.py 的文件中实现,该文件位于包含 steps 文件夹的同一目录中。设置函数包括 - 浏览器打开、数据库连接、配置等。

取消设置函数包括浏览器关闭、数据库连接终止、还原更改等。

environment.py 文件包含以下函数:

  1. before_feature(context,feature) - 在每个 feature 之前执行。

  2. before_scenario(context,scenario) - 在每个 scenario 之前执行。

  3. before_step(context,step) - 在每个 step 之前执行。

  4. before_tag(context,tag) - 在每个 tag 之前执行。

  5. before_all(context) - 在所有内容之前执行。

  6. after_feature(context,feature) - 在每个 feature 之后执行。

  7. after_scenario(context,scenario) - 在每个 scenario 之后执行。

  8. after_step(context,step) - 在每个 step 之后执行。

  9. after_tag(context,tag) - 在每个 tag 之后执行。

  10. after_all(context) - 在所有内容之后执行。

上述函数被用作 Behave 中的挂钩。项目结构应如下所示:

project structure

Feature File with hooks (Payment.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

Feature File with hooks (Payment1.feature)

下面给出带有钩子的 Payment1.feature 的功能文件 −

Feature − Administration Process
Scenario − Verify admin transactions
         Given user is on admin screen

Corresponding step Implementation File

步骤实现文件如下所示 −

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

Step 4 − Hooks in environment.py file

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')

Output

运行功能文件后获得的输出如下 −

hooks