我正在使用Behave自动执行配置文件的测试,作为该测试的一部分,我需要使用无效和空白字段填充配置文件中的各个字段。在要输入值的地方,可以使用在方案示例中输入值的方案大纲来执行此操作。但是,当我尝试使用此方法输入空白字段时,“行为”不喜欢没有任何价值的事实。
是否有一种简单的方法可以从“示例”文件中传递空白值,或者我需要使用单独的行为测试来测试这些条件
feature
Scenario Outline:Misconfigured Identity Listener
Given an already stopped Identity Listener
And parameter <parameter> is configured to value <config_value>
When the Identity Listener is started
Then the identity listener process is not present on the system
And the log contains a <message> showing that the parameter is not configured
Examples: Protocols
|parameter |message |config_value|
|cache_ip_address | cache_ip_address | |
|cache_ip_address | cache_ip_address | 123.123.12 |
定义配置值的步骤
@given('parameter {parameter} is configured to value {config_value}')
def step_impl(context, parameter, config_value):
context.parameter = parameter
context.config_value = config_value
context.identity_listener.update_config(parameter, config_value)
使用sed -i更改配置文件(在此测试中,我正在与linux系统交互)
def update_config(self, param, config_value):
command = 'sudo sh -c "sed -i'
command = command + " '/" + param + "/c\\" + param + "= "+ config_value + " \\' {0}\""
command = command.format(self.config_file)
self.il_ssh.runcmd(command)
感谢@Verv的回答,我在下面找到了这个可行的解决方案
在不希望传递值的字段中传递了空值
|parameter |message |config_value|
|cache_ip_address | cache_ip_address | empty |
在我的更新配置步骤中添加了if else语句
def update_config(self, param, config_value):
if config_value == "empty":
il_config = ""
else:
il_config = config_value
command = 'sudo sh -c "sed -i'
command = command + " '/" + param + "/c\\" + param + "= " + il_config + " \\' {0}\""
command = command.format(self.config_file)
self.il_ssh.runcmd(command)
答案 0 :(得分:1)
您可以在字段中放入类似empty
的内容,并调整方法,以便每当字段的值为empty
时,就将其视为实际的空字符串(即""
)