2013-05-14 8 views
15

私はテストする変数に入れたい非常に長い正規表現を持っています。私はそれを読むことができないように複数の行に置くことができるようにしたいと思います。ドキュメンテーションタグで複数の行を見ることができます。しかし、このフォーマットを試してみると、ロボットはこれがリストだと思うようです。ロボットのフレームワークでこれを行う方法はありますか?ロボットフレームワークで変数span複数行を使用することは可能ですか?

${example_regex} =  '(?m)Setting IP address to [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\nSetting MAC address to [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}\nSetting IP forwarding kernel options' 

は書くことができるようにしたいと思います:

${example_regex} '(?m)Setting IP address to [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\n 
        Setting MAC address to [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}\n 
        Setting IP forwarding kernel options' 

答えて

21

は残念ながら、robotframeworkは直接複数行のリテラル文字列をサポートしていません。ただし、テストケースまたはキーワードでcatenateキーワードを使用すると、複数のセルにまたがってデータを結合する場合と同じ効果を得ることができます。バックスラッシュを適切にエスケープし、データに改行を入れたくない場合は、区切り文字を空の文字列に設定してください。例えば

*** Test Cases *** 
Multiline variable example 
    ${example_regex}= catenate SEPARATOR= 
    ... (?m)Setting IP address to [0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\n 
    ... Setting MAC address to [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}\\n 
    ... Setting IP forwarding kernel options 
    log regex: '${example_regex}' 
+0

これは非常に有用な技術です。私の変数では、$ {SPACE}変数を使用して行末にスペース文字を入力する必要がありました。 –

+0

改行をしたい人は、 '\ n'や' $ {\ n} 'をテキストに入れてください。 – tuxayo

関連する問題