Behave - 标签



特性文件的一部分可以添加标签,以便 Behave 能够仅验证特性文件中的特定部分。只有场景、特性和场景大纲可以添加标签。

此外,用于特性的标签将被其所有场景和场景大纲继承。标签放置在我们想要标记的场景或特性之前。我们也可以在一行中用空格分隔多个标签。

标签以 @ 开头,后跟标签名称。

带有标签的特性文件 (Payment.feature)

带有标签的特性文件如下所示:

@high
Feature − Payment Process
@creditpayment
            Scenario − Credit card transaction
   Given user is on credit card payment screen
   Then user should be able to complete credit card payment
@debitpayment
            Scenario − Debit card transaction
   Given user is on debit card payment screen
   Then user should be able to complete debit card payment

标签通过根据标签排除/包含特定场景或特性来帮助管理测试执行。

在上面的例子中,要运行带有 creditpayment 标签的特定场景,我们必须运行以下命令:

behave payment.feature --tags=creditpayment

要运行带有 high 标签的特性并执行所有场景,我们必须运行以下命令:

behave payment.feature --tags=high

如果运行以下命令,则表示该命令将执行带有 creditpayment 或 debitpayment 标签的场景。

behave payment.feature --tags= creditpayment, debitpayment

如果运行以下命令,则表示该命令将执行带有 creditpayment 和 debitpayment 标签的场景。

behave payment.feature --tags= creditpayment --tags=debitpayment

如果运行以下命令,则表示该命令将不执行带有 creditpayment 标签的场景。

behave payment.feature --tags= ~ creditpayment

因此,**带有标签的特性文件 (Payment.feature)** 将如下所示:

@high
Feature − Payment Process
@creditpayment @payment
   Scenario − Credit card transaction
      Given user is on credit card payment screen
@debitpayment @payment
      Scenario − Debit card transaction
      Given user is on debit card payment screen
   Scenario − Cheque transaction
      Given user is on cheque payment screen

相应的步骤实现文件

文件如下所示:

from behave import *
@given('user is on credit card payment screen')
def credit_card_pay(context):
   print('User is on credit card payment screen')
@given('user is on debit card payment screen')
def debit_card_pay(context):
   print('user is on debit card payment screen')
@given('user is on cheque payment screen')
def cheque_pay(context):
   print('user is on cheque payment screen')

输出

运行特性文件后获得的输出如下所示。这里,我们使用了命令 **behave --no-capture Payment.feature --tags=payment**。

No Capture Payment Feature

输出显示两个场景通过,因为特性文件中有两个场景的场景标签为 payment。

当我们使用命令 **behave --no-capture Payment.feature --tags=~creditpayment** 时,输出如下所示:

Creditpayment

输出显示两个场景通过,因为特性文件中没有两个场景的场景标签为 creditpayment。

当我们使用命令 **behave --no-capture Payment.feature --tags=high** 时,输出如下所示:

Scenario Tag

输出显示三个场景通过,因为特性文件中没有三个场景的特性标签为 high。

使用命令 **behave --no-capture Payment.feature --tags=payment,creditpayment** 获取以下输出:

Scenario tagged with payment

输出显示两个场景通过,因为特性文件中没有两个场景的场景标签为 payment 或 creditpayment。

广告
© . All rights reserved.