- Behave 教程
- Behave - 首页
- Behave - 简介
- Behave - 安装
- Behave - 命令行
- Behave - 配置文件
- Behave - 特性测试设置
- Behave - Gherkin 关键字
- 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
要运行带有 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
因此,**带有标签的特性文件 (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**。
输出显示两个场景通过,因为特性文件中有两个场景的场景标签为 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。