当我运行带有列表的测试时,会发现一个错误,即字典没有键。但是正如你所看到的,我确实打印了键,而它的值应该是列表的键似乎就在那里。
不知道我做错了什么,为什么我的钥匙在错误信息中以不同的方式显示。如果能帮助解决这个问题,我将不胜感激。
*** Variables ***
${p1}= P-1
${f1}= F-2
${p2}= P-2
${p3}= P-3
*** Test Cases ***
DICT-WITH-LISTS
[tags] run
${resNameList} = Create List
${laneInfoList}= Create Dictionary L0=res1 L1=res2 L2=res3 L3=res4 L4=res5
${lane2resNameMappingList}= Create List
log to console LANE ID LIST : ${laneInfoList.keys()}
:FOR ${laneID} IN @{laneInfoList.keys()}
\ Append To List ${resNameList} ${laneInfoList['${laneID}']}
\ ${lane2resName}= Create dictionary lane=${laneID} resName=${laneInfoList['${laneID}']}
\ Append To List ${lane2resNameMappingList} ${lane2resName}
${resName2resObjMappingList}= Create Dictionary
@{resNameList}= Remove Duplicates ${resNameList}
log to console res LIST: @{resNameList}
${totalres}= Get length ${resNameList}
: FOR ${index} IN RANGE 0 ${totalres}
\ log to console INDEX:${index} res:${resNameList}[${index}] AFMObj:afm${index}
\ set to dictionary ${resName2resObjMappingList} ${resNameList}[${index}]=afm${index}
log to console lane2resNameMappingList: ${lane2resNameMappingList}
log to console resName2resObjMappingList: ${resName2resObjMappingList}
set global variable ${lane2resNameMappingList}
set global variable ${resName2resObjMappingList}
${totalObjList}= create list ${p1} ${f1} ${p2} ${p3}
${totalObjsInTest}= Get length ${totalObjList}
${totalLanesAvailable}= Get length ${lane2resNameMappingList}
${totalObjs} = Set Variable IF ${totalObjsInTest} > ${totalLanesAvailable} ${totalLanesAvailable} ${totalObjsInTest}
${object2resMappingList}= Create Dictionary
${resList} = Create List
log to console Attaching res for a total of ${totalObjs} objects based on current availability!
: FOR ${index} IN RANGE 0 ${totalObjs}
\ log to console Obj:${totalObjList}[${index}]
\ log to console res: ${lane2resNameMappingList[${index}]['resName']}
\ log to console res Obj:${resName2resObjMappingList['${lane2resNameMappingList[${index}]['resName']}']}
\ log to console Lane:${lane2resNameMappingList[${index}]['lane']}
\ log to console BW:${lane2resNameMappingList[${index}]['lane']}
\ ${isKeyPresent}= Run Keyword And Return Status Dictionary Should Contain Key ${object2resMappingList} ${totalObjList}[${index}]
\ log to console KEY:${isKeyPresent}
\ Run Keyword Unless ${isKeyPresent} set to dictionary ${object2resMappingList} ${totalObjList}[${index}]=${resList}
\ log to console AFTER:object2resMappingList: ${object2resMappingList}
\ log to console OBJ:${totalObjList}[${index}] VALUE:${resName2resObjMappingList['${lane2resNameMappingList[${index}]['resName']}']}
\ log to console DICT : ${object2resMappingList.keys()}
\ log to console DICT : &{object2resMappingList} KEY:${totalObjList}[${index}]
\ Run Keyword Append To List &{object2resMappingList}[${totalObjList}[${index}]] ${resName2resObjMappingList['${lane2resNameMappingList[${index}]['resName']}']}
\ ${resList} = Create List
log to console object2resMappingList: ${object2resMappingList}输出
...LANE ID列表: odict_keys('L0','L1','L2','L3','L4')
....res列表:'res1','res2','res3','res4','res5‘
.INDEX:0 res:res1afmobj:afm0 0
索引:1 res:res2 AFMObj:afm1 1
指数:2 res:res 3 AFMObj:afm2
指数:3 res:res 4 AFMObj:afm3 3
索引:4 res:res5 AFMObj:afm4 4
.lane2resNameMappingList:{ 'L0','resName':'res1'},{‘L4’:'L1',‘resName’},{ 'res2'},{ 'res3'},{‘res3’},{ 'L3','resName':'res4'},{ 'L4','resName':'res5'} .resName2resObjMappingList:{'res1':'afm0','res2':‘afm4 1’,'res3':'afm2','res4':‘afm4 3’,'res5':'afm4'}
基于当前可用性的共4个对象的....Attaching res!
. .Obj:P-1
res: res1
res Obj:afm0 0
莱恩:L0
体重:L0
键:假
后面:object2resMappingList:{'P-1':[]}
OBJ:P-1值:afm0 0
DICT : odict_keys('P-1')
迪克:{'P-1':[]}键:P-1
没有键“P-1”、“F-2”、“P2”、“P-3‘0”。
测试
1次临界测试,0通过,1次失败
1测试总计,0通过,1失败
发布于 2020-06-06 04:49:28
更改此处引用键的方式,从:
Run Keyword Append To List &{object2resMappingList}[${totalObjList}[${index}]] ${resName2resObjMappingList['${lane2resNameMappingList[${index}]['resName']}']}至:
Run Keyword Append To List ${object2resMappingList['${totalObjList}[${index}]']} ${resName2resObjMappingList['${lane2resNameMappingList[${index}]['resName']}']}https://stackoverflow.com/questions/62226854
复制相似问题