Behave 简明教程
Behave - Tags
功能文件的章节可以进行标记,以便 Behave 能够仅验证该功能文件的部分章节。只有场景、功能、场景大纲可以进行标记。
此外,用于功能的标签应被其所有场景和场景大纲继承。标签位于我们要标记的场景或功能之前。我们还可以在一行中用空格分隔多个标签。
标签以 @ 开头,后跟标签名称。
Feature File with tags (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
因此, the Feature File with tags(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
Corresponding Step Implementation File
文件如下所示 −
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')
Output
运行功能文件后获得的输出如下。在这里,我们使用了命令 behave --no-capture Payment.feature --tags=payment 。
输出显示两个场景通过,因为在功能文件中,有两个场景带有 payment 场景标签。
当我们使用命令 behave --no-capture Payment.feature --tags=~creditpayment 时,输出如下 −
输出显示两个场景通过,因为在功能文件中,有两个场景没有标记为 creditpayment 的场景标签。
当我们使用命令 behave --no-capture Payment.feature --tags=high 时,输出如下 −
输出显示三个场景通过,因为在功能文件中,有三个场景没有标记为 high 的功能。
使用命令 behave --no-capture Payment.feature --tags=payment,creditpayment 以获取以下提到的输出 −
该输出显示通过了两个场景,因为功能文件中没有标记为“payment”或“creditpayment”的场景。