2017-11-21 3 views
-3

ここで3つのファイルlist.robot、code.jsonが入力ファイルです。ライブラリファイルcompareLib.py プログラム、それは常に私が30以来、真の期待しています、Falseを返すには、[」すべてのファイルがjsonライブラリが使用されていて、リストがユニコード文字と混在していると、robotframeworkのカスタムライブラリでリスト出力が認識されない

list.robotファイル

*** Settings *** 
Library SudsLibrary 
Library JSONLibrary 
Library OperatingSystem 
Library compareLib.py 

*** Test Cases *** 
test json data1 
     # load file in json object 
     ${json_obj}= Get file code.json 
     ${obj}= evaluate json.loads('''${json_obj}''') json 
     log ${obj} 
     ${value} = Get Value From Json ${obj} $..code_id 
     #variable ${value} return list [20,30,40] from code.json file 
     log to console ${value} 
     ${compare} set variable 30 
     ${contain} = contain_number ${value} ${compare} 
     log to console ${contain} 

サンプルcode.jsonファイル開始配列と同じフォルダ内に存在しているリスト に存在しています'次に3つのブロック{}、次に配列の終了ブロック'] '

のlibファイルここ

arg1がリスト[20,30,40]とarg2の30で、私は期待してい真のですが、それはあなたが$を渡すとき

def contain_number(arg1,arg2): 
    if arg2 in arg1: 
     return True 
    else: 
     return False 
+0

これは、視覚障害を持つ人々のための質問ですか?それは積極的かつ本当に不明です... – F0XS

+0

私は適切な形式でこの質問を投稿できませんでした、私はそれがこの質問を投稿することができませんでしたガイドラインに従ってください。私は適切な形式でコードを投稿する方法を提案してください – madhur

+0

どのようなデバッグあなたはしましたか? 'arg1'と' arg2'にあなたが思っていると思っている値が入っていることを確認しましたか? –

答えて

0

問題は{比較してfalseを返します。 Python関数へrobotframeworkから}変数は、それがcomaprisonこの ([30、40、30]、u'30 ')

u'30' のようないくつかのものだったので

Unicode文字列としてつもりでしたその中には見つからないだろうリストは$ {Value}です。

ので、私は自分のPythonのファイルに整数にrobotframeworkから渡された文字列を変換しているし、それが動作するはず今

def contain_number(arg1,arg2): 
    arg2=int(arg2) 
    if arg2 in arg1: 
     return True 
    else: 
     return arg1,arg2,False 
関連する問題