- 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。