在 运行 行为测试之前仅执行一次前提条件
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
此前提条件在scenario outline 中定义的每个测试之前执行。
有没有办法运行只用一次?
一种可能性是在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")
我只想 运行 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
此前提条件在scenario outline 中定义的每个测试之前执行。 有没有办法运行只用一次?
一种可能性是在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")