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标记的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。
输出显示两个场景已通过,因为功能文件中有两个场景具有带支付的场景标签。
当我们使用命令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 标记的场景。