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

No Capture Payment Feature

輸出顯示兩個場景透過,因為特性檔案中有兩個場景的場景標籤為 payment。

當我們使用命令 **behave --no-capture Payment.feature --tags=~creditpayment** 時,輸出如下所示:

Creditpayment

輸出顯示兩個場景透過,因為特性檔案中沒有兩個場景的場景標籤為 creditpayment。

當我們使用命令 **behave --no-capture Payment.feature --tags=high** 時,輸出如下所示:

Scenario Tag

輸出顯示三個場景透過,因為特性檔案中沒有三個場景的特性標籤為 high。

使用命令 **behave --no-capture Payment.feature --tags=payment,creditpayment** 獲取以下輸出:

Scenario tagged with payment

輸出顯示兩個場景透過,因為特性檔案中沒有兩個場景的場景標籤為 payment 或 creditpayment。

廣告
© . All rights reserved.