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

要运行标签高的功能并执行所有场景,我们必须运行以下命令 -

behave payment.feature --tags=high

如果运行下面的命令,则表示该命令将执行标记有信用卡支付或借记支付的场景。

behave payment.feature --tags= creditpayment, debitpayment

如果运行下面给出的命令,则意味着该命令将执行标记有信用卡付款和借记付款的场景。

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

如果运行下面提到的命令,则意味着该命令不会执行带有credit payment标签的Scenario。

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

无捕获付款功能

输出显示通过的两个场景,因为功能文件中有两个场景具有带有付款的场景标签。

当我们使用命令behavior --no-capture Payment.feature --tags=~credit payment时,输出如下 -

信用支付

输出显示通过的两个场景,因为功能文件中有两个场景没有信用支付的场景标签。

当我们使用命令behavior --no-capture Payment.feature --tags=high 时,输出如下 -

场景标签

输出显示通过的三个场景,因为功能文件中有三个场景没有标记为高的功能。

使用命令act --no-capture Payment.feature --tags= payment,credit payment来获取下面提到的输出 -

带有付款标记的场景

输出显示通过的两个场景,因为功能文件中有两个场景没有使用付款或信用付款标记的场景。