2016-06-30 1 views
0

I 싶어를 목록/사전을 전송할 수 없습니다내 라이브러리 키워드에 매개 변수로 하나 개의 목록을 전송하는 로봇 프레임 워크 내 테스트 라이브러리에

을 내 라이브러리에서
@{vargs} Create List NO=1227003021 requestType=0 [email protected]{destinations} 

:

def ModifyDefaultValue(self, dictOri, *vargs): 
    '''<br/> 
     *vargs: List Tyep and format is: var1=value1, var2=value2 
    ''' 
    logger.info("SmartComLibrary ModifyDefaultValue()", also_console=True) 
    for i in range(len(vargs)): 
     logger.info("\t----Type: %s" % str(vargs[i].split("=")[1].__class__)) 

그들은 항상 :

20160630 22:11:07.501 : INFO :  ----Type: <type 'unicode'> 

하지만 "대상"이 "목록"이어야합니다.

답변

1

목록 만들기는 대상 = 아래에 무엇을 놓고 관계없이 3 개의 문자열 목록을 만듭니다.

Create List NO=1227003021 requestType=0 [email protected]{destinations} 

수동으로 키워드 인수를 사용하려는 것 같습니다. 그러나 Python과 Robot Framework는 그들을 지원하므로 '='등을 구문 분석하고 분리 할 필요가 없습니다. 키워드 인수를 허용하도록 키워드를 변경하십시오. 그런 다음 목록을 작성하는 대신 사전을 작성합니다. 테스트에서

def ModifyDefaultValue(self, dictOri, **kwargs): 
     logger.info("SmartComLibrary ModifyDefaultValue()", also_console=True) 
     for k, v in kwargs.items(): 
      logger.info("\t----Type: %s: %s" % (k, type(v))) 

:

${destinations} Create List a b c 
&{kwargs} Create Dictionary NO=1227003021 requestType=0 destination=${destinations} 
ModifyDefaultValue asdf &{kwargs} # note the & here 

출력 :

20160630 12:12:41.923 : INFO :  ----Type: requestType: <type 'unicode'> 
20160630 12:12:41.923 : INFO :  ----Type: destination: <type 'list'> 
20160630 12:12:41.923 : INFO :  ----Type: NO: <type 'unicode'> 

또는, 당신은 또한 ModifyDefaultValue 두 번째 인수로 DICT를 취할 수 있었다. 데이터에

def ModifyDefaultValue(self, dictOri, args): 
    logger.info("SmartComLibrary ModifyDefaultValue()", also_console=True) 
    for k, v in args.items(): 
     logger.info("\t----Type: %s: %s" % (k, type(v))) 

: 또한

${destinations} Create List a b c 
&{args} Create Dictionary NO=1227003021 requestType=0 destination=${destinations} 
ModifyDefaultValue asdf ${args} # note the $ here 

참조 :