进入Python生菜。是否可以在步骤代码中添加step.hashes标头?

时间:2015-03-04 07:56:01

标签: lettuce

目前我正在Python Lettuce中编写一些集成测试。我想为一些XML的比较创建一个通用的步骤。

我知道在步骤定义之后的.feature文件中

Scenario: I want to compare XML's...
 ...
 And I check generated transaction "XYZ" contents with parameters:
 ...

我可以添加step.hashes,这将在步骤定义中的step.hashes属性中可用(some_step_definitions.py bellow)

@step(u'And I check generated transaction "([^"]+)" contents with parameters:$')
def check_generated_content(step, transaction_type):
    *(some xml mappings for comparision, appending dictionaries to step.hashes)*
    for item in mappings:
       step.hashes.append({
          'key1': 'val1',
          'key2': 'val2'
       })

我的问题是:是否可以在步骤代码(check_generated_content)中追加标题(key1,key2),当执行测试时,我在测试报告中有标题,如:

Scenario: I want to compare XML's...
 ...
 And I check generated transaction "XYZ" contents with parameters:
| key1 | key2 |
| val1 | val2 |
...

当我没有指定

And I check generated transaction "XYZ" contents with parameters:
| key1 | val1 |

在功能文件中,我收到了测试报告:

And I check generated transaction "XYZ" contents with parameters:
| | |
| | |

总之..我只想写

And I check generated transaction "XYZ" contents with parameters:

而不是

And I check generated transaction "XYZ" contents with parameters:
| key1 | val1 |

每一次。

1 个答案:

答案 0 :(得分:0)

所以在写这篇文章的同时,我提出了解决方案。这很容易...... 在步骤代码定义中我需要添加的是步骤键的默认值

step.keys = [ 'key1', 'val1' ]

然后我可以将哈希附加到step.hashes。之后我用behave_as方法执行了步骤

step.behave_as(step.sentence + '\n' + step.represent_hashes())

所有内容都在测试输出中精美打印。