23

テストする変数に入れたい非常に長い正規表現があります。読みにくくならないように、複数行に分けて表示できるようにしたいと思います。documentation タグを使用して複数の行を実行できることがわかりました。しかし、このフォーマットを試してみると、Robot はこれをリストだと思っているようです。Robot Framework でこれを行う方法はありますか?

検討:

${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'
4

3 に答える 3

33

変数テーブル内

テーブルに文字列を作成している場合は*** Variables ***、定義を複数の行に広げることができます。特別な引数SEPARATORを使用して、セルを結合する方法を定義できます。デフォルトでは、行はスペースで結合されるため、明示的にSEPARATOR値を指定しないことで空の文字列に設定する必要があります。

詳細については、ユーザー ガイドの変数テーブルを参照してください。

*** Variables ***
${example_regex}=  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

テスト ケースまたはキーワードで

テスト ケースまたはキーワードでこれを実行しようとしている場合、複数行の文字列を直接定義することはできません。ただし、テスト ケースまたはキーワードで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}'
于 2013-05-15T17:11:58.207 に答える