2017-03-13 7 views
0

異なるケースで一意の名前を生成しようとしましたが、最小のキーワードを使用してその一意の名前をスイート変数として設定しようとしました。 誰かが私はこれを取得するのに役立つことができ、ここに私のコードは...あるRobotframework:変数を渡す場合はRunキーワードの変数にSuite変数を設定できません

*** Test Cases *** 

TC100_Unique Variable Checking 
Generate Unique Name for Objects-loop Product Line 
Generate Unique Name for Objects-loop Models 
Generate Unique Name for Objects-loop Portfolio 

*** Keywords ***  
Generate Unique Name for Objects-loop 
[Arguments] ${function} 
Set Variable ${function} 
${namePL}= Run Keyword If '${function}'=='Product Line' Run  Keywords Generate Unique Name PL-RFT- ${CURDIR}\\fNameEdit.txt 
... Set Suite Variable ${namePL} 
${nameMOD}= Run Keyword If '${function}'=='Models' Run Keywords Generate Unique Name MOD-RFT- ${CURDIR}\\modNameEdit.txt 
... Set Suite Variable ${nameMOD} 
${namePF} Run Keyword If '${function}'=='Portfolio' Run Keywords Generate Unique Name PF-RFT- ${CURDIR}\\pfNameEdit.txt 
... Set Suite Variable ${namePF} 

Generate Unique Name 
[Arguments] ${suffix} ${filepath} 
${name}= Get String Plus Number ${suffix} ${filepath} 
Set Test Variable ${name} 
Write Unique Number ${filepath} 
[Return] ${name} 

エラー:

Variable '${namePL}' not found.

答えて

1

最後に、私は単一のキーワードで解決策を発見できました。ここに簡単なコードがあります。

Run Keyword If '${function}'=='Products' Run Keywords Generate Unique Name PL-RFT- ${CURDIR}\\fNameEdit.txt AND 
... Set Suite Variable ${namePL} ${name} 

ご意見ありがとうございます。

0

[実行文が実行される複数のキーワードを許可しなければ、しかし、値に基づいて変数を設定します同じRun Ifコンテキストでも設定されますここで本当の問題です。私のアドバイスは、IDの生成と再利用を2つの異なるステートメントで分割することです。

0

は、コードブロックを考えてみましょう:

${namePL}= Run Keyword If '${function}'=='Product Line' Run  Keywords Generate Unique Name PL-RFT- ${CURDIR}\\fNameEdit.txt 
... Set Suite Variable ${namePL} 

これは${namePL}後に他のキーワードが既に実行された名前の変数を作成します。ただし、Set Suite Variableをこれらのキーワードの1つとして呼び出しようとしていますが、の前にRun keyword ifが終了し、したがって${namePL}が作成されています。

関連する問題