簡體   English   中英

在運行行為測試之前只執行一次前提條件

[英]Execute precondition only once before running behave tests

我想在運行一堆測試(在場景大綱中定義)之前只運行一次precondition

假設我有這樣的feature file

Background:
    Given Fan is powered

#Test to check fan speed
@TEST_FAN-1 @SuperFan
Scenario Outline: Checking fan speed
    Given fan is not running
    When send speed command with <speed>
    Then fan is running with <speed>


    Examples:
        | speed |          
        | 5     |
        | 50    |
        | 100   |

我已經定義了Given Fan is powered如下:

@given("Fan is powered")
def step_impl(context):
    assert conetxt.fan.is_powered

這個先決條件在場景大綱中定義的每個測試之前執行。 有沒有辦法只運行一次?

一種可能性是在before_all添加上下文屬性以跟蹤相關步驟之前是否已執行。 這仍將在日志中顯示該步驟,但后續嘗試將無操作。

def before_all(context):
    context.precondition_cache = set()

@given("fan is powered")
def step_impl(context):
    if "fan is powered" not in context.precondition_cache:
        # power up the fan
        context.precondition_cache.add("fan is powered")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM