データドリブンテストケースに関連して、オプションのキーワード引数にデフォルト値を使用する方法を誰かが私に説明できますか?
私の例でわかるように、一部のケースではすべてのデフォルト値が使用されるわけではありません。
*** Test Cases ***
| testArgs | [Template] | doSomething
| | 111 : 222 : 333 : 444
| | xxx : 222 : 333 : 444 | xxx
| | 111 : xxx : 333 : 444 | | xxx
| | 111 : xxx : 333 : 444 | ${EMPTY} | xxx
| | None : xxx : 333 : 444 | ${None} | xxx
| | None : xxx : 333 : 444 | ${null} | xxx
| | 111 : 222 : xxx : 444 | | | xxx
*** Keywords ***
| doSomething
| | [Arguments] | ${expected} | ${arg1}=111 | ${arg2}=222 | ${arg3}=333 | ${arg4}=444
| | Log | exp: ${expected}
| | ${rc} | Set Variable | ${arg1} : ${arg2} : ${arg3} : ${arg4}
| | Log | arg: ${rc}
| | Run Keyword If | '${rc}' == '${expected}'
| | ... | Log | === equal ===
| | ... | ELSE
| | ... | Log | !!! diff !!!
| | Log | **************************
| | Should be equal | ${rc} | ${expected}
結果:
testArgs | FAIL |
Several failures occurred:
1) : xxx : 333 : 444 != 111 : xxx : 333 : 444
2) : xxx : 333 : 444 != 111 : xxx : 333 : 444
3) : : xxx : 444 != 111 : 222 : xxx : 444
名前付き引数を使用して特定のキーワード引数を設定できることを知っています。ただし、これはキーワード駆動のテストケースでのみ可能です。
よろしく、トム
渡す引数を指定して、特定のキーワードを呼び出します。例えば:
*** Test Cases ***
TEST
MyKeyword a=1 c=3
*** Keywords ***
MyKeywords
[Arguments] ${a}=0 ${b}=2 ${c}=3
ここでは、引数「b」を渡していません。デフォルトではb = 2になります
Robot Frameworkユーザーガイドの例:
*** Keywords ***
Two Arguments With Defaults
[Arguments] ${arg1}=default 1 ${arg2}=${VARIABLE}
[Documentation] This keyword takes 0-2 arguments
Log 1st argument ${arg1}
Log 2nd argument ${arg2}
*** Test Cases ***
Example
Two Arguments With Defaults arg2=new value
だからピータービンガムは正しいです:
*** Test Cases ***
TEST
MyKeyword a=1 c=3
*** Keywords ***
MyKeywords
[Arguments] ${a}=0 ${b}=2 ${c}=3
あなたの例ではすでにデフォルトの引数値を使用しています:
0a)111 : 222 : 333 : 444
=> ${expected}
のみが設定されています。他のすべての引数はデフォルトです(そして機能しています)。
0b)111 : xxx : 333 : 444 | | xxx
=>これはエラーを出力しません。${arg1}
デフォルト値は正しく使用されているようです。
1)None : xxx : 333 : 444 | ${None} | xxx
=>「なし」というテキストは特別な値ではありません${None}
、これらのいずれかで${expected}
が修正されている可能性があります:$ {None} = : xxx : 333 : 444 | ${None} | xxx
またはNone : xxx : 333 : 444 |
なし| xxx
。
2)None : xxx : 333 : 444 | ${null} | xxx
=>上記と同じように、テキスト「なし」と値${null}
の違いについては、上記の小道具と同様に修正できます。
3)111 : 222 : xxx : 444 | | | xxx
=>結果で${arg1}
および${arg2}
が${None}
に設定されている理由が見つかりません。これらは評価されるべきであり、これによりエラーは出力されません。特に出力エラーのために、この行を111 : 222 : xxx : 444 | ${None} | ${None} | xxx
に変更した可能性がありますか?
例では問題ありません。デフォルト値を適切に使用します。 (私はそれが3年間のスレッドであることを知っていますが、RobotFrameworkのデフォルト値に関する「ハウツー」を探していたので、答えました。)