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
如果运行下面的命令,意味着该命令将执行被标记为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 .
输出显示有两个场景被通过,因为在特征文件中有两个场景的Scenario标签为payment。
当我们使用命令 behave –no-capture Payment.feature –tags=~creditpayment 时,输出结果如下
输出显示两个场景通过了,因为在特征文件中有两个场景没有带creditpayment的场景标签。
当我们使用 behave –no-capture Payment.feature –tags=high 命令时,输出结果如下
输出显示三个场景通过,因为特征文件中有三个场景没有标记为高的特征。
使用 behave –no-capture Payment.feature –tags=payment,creditpayment 命令,可以得到下面提到的输出结果。
输出显示有两个场景通过,因为特征文件中有两个场景没有标记为payment或creditpayment的场景。