- Behave教程
- Behave - 主页
- Behave - 简介
- Behave - 安装
- Behave - 命令行
- Behave - 配置文件
- Behave - 功能测试设置
- Behave - 小Cucumber关键词
- Behave - 功能文件
- Behave - 步骤实施
- Behave - 第一步
- Behave - 支持的语言
- Behave - 步骤参数
- Behave - 场景大纲
- Behave - 多行文本
- Behave - 设置表
- Behave - 一步一步
- Behave - 背景
- Behave - 数据类型
- Behave - 标签
- Behave - 枚举
- Behave - 步骤匹配器
- Behave - 正则表达式
- Behave - 可选部分
- Behave - 多种方法
- Behave - 阶跃函数
- Behave - 步骤参数
- Behave - 运行脚本
- Behave - 排除测试
- Behave - 重试机制
- Behave - 报告
- Behave - 钩子
- Behave - 调试
- Behave有用的资源
- Behave - 快速指南
- Behave - 有用的资源
- Behave - 讨论
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来获取下面提到的输出 -
输出显示通过的两个场景,因为功能文件中有两个场景没有使用付款或信用付款标记的场景。