2017-10-14 8 views
0

로봇 프레임 워크 - 설정 섹션에서 리소스 경로를 매개 변수화하는 문제가 있습니다. 현재 셀렌 프로젝트의 파일에 개체 리포지토리가 있고 ObjectMap.Robot file으로 저장했습니다. OR 파일은 프로젝트 안에 배치됩니다. 내 목표는 ObjectMap.Robot을 원격 장소에 두어 액세스하는 것입니다. 로봇 프레임 워크 : 설정에서 리소스 경로를 매개 변수화 할 때의 문제

은 현재 내가 계속 변경 그리고 내 키워드 파일에 액세스하거나 파일로 ConfigVariables.robot

*** Variables *** 

${DataFilePath} /Sample/DataFiles/ 
${OR_PATH} \\\\AIX2UB333/Resources/ObjectMap/ 

$ {OR_PATH}에서 변수를 정의, 나는 다음과 같이 내 설정을 설정했습니다.

*** Settings *** 

Resource ../Resources/ConfigurationFiles/ConfigVariables.robot 
Resource ${OR_PATH}/ObjectMap.robot 

문제 : 오류가 그

가져 오기 이름/경로 '$ {OR_PATH} /ObjectMap.robot'로 표시되어 매개 변수입니다. 사용 된 매개 변수 중 일부를 확인할 수 없습니다. 매개 변수 해상도

red.xml에 추가 시도

에 대한 red.xml에 변수 매핑을 사용하여 오류가 여전히 지속. 재미있는 점은 테스트 케이스를 실행하면 성공적으로 실행된다는 것입니다. 그러나 objectmap에서 사용 된 변수에는 테스트 케이스에 빨간색 오류 줄이 있습니다. 모든 변수에는 오류가 있습니다.

변수가 사용되지만 정의되지 않았습니다.

+0

빨간색 편집기에서 오류를 어떻게 울리지? –

+0

오류는 $ {OR_PATH} /ObjectMap.robot 자원 및 ObjectMap.robot에 정의 된 모든 변수에 표시됩니다. 기본적으로 리소스 경로에서 변수를 사용하는 방법을 알고 싶습니다. – Dani

+0

테스트가 빨간색 외부에서 실행됩니까? –

답변

1

@Bryan Oakley가 강조한대로 이것은 Robot Framework 문제가 아니라 Eclipse RED Robot Framework 편집기의 프로젝트 구성 문제입니다.

설정에서 프로젝트 변수 매핑과 관련하여 올바르지 않은 부분이있는 것 같습니다. 시장에서 일식을 업데이트하거나 GitHub 사이트에서 최신 버전을 다운로드하여 최신 RED를 보유하고 있는지 확인하십시오. 나는 새로운 프로젝트를 생성하고 세 개의 파일

project: 
. 
├── red.xml 
├── OR 
| └── ObjectStore.robot 
├── test.robot 
└── resource.robot 

에게 test.robot

를 추가
*** Setting *** 
Resource resource.robot 
Resource ${OR}/ObjectStore.robot 

*** Test Cases *** 

resource.robot

*** Variable *** 
${OR} OR 

ObjectStore.robot

[EMPTY] 

RED.xml RED.xml variable mapping

이 나는 ​​또한 하드 코딩 구성 참조에 포함하지 좋을 걸, 오류가 변경 될 수 있습니다 객체 저장소로 test.robot

enter image description here

에 표시되지 않습니다 보장합니다. 대신 Robot Framework 명령 줄 변수의 값을 add a variable으로 사용하거나 a variable file을 참조하여 소스 코드 저장소에서 파일을 가져온 후 파일을 수정할 필요없이 유연성을 확보하십시오.

+0

이제 경로 'D : /path/ObjectMap.robot'이 작업 영역 외부의 위치를 ​​가리키는 오류가 발생합니다. 리소스 | $ {OR} /ObjectStore.robot. D :/path가 외부 위치를보기위한 테스트 목적으로 제공되었습니다. – Dani

+0

일반적으로 외부 구현 파일이있을 때 작업 공간 안에 템플릿 하나를 보관하고 VariableMapping에서이 파일을 참조하는 데 사용합니다. 런타임에 외부 구현을 지정합니다. 즉, 이것은 경고가되어서 오류가 아니라고 보증 할 수 있습니다. 그런 경우 GitHub에서 문제를 기록하십시오. –

0

나는이 상황에 대한 해결책을 찾았습니다. 필자는 원격 컴퓨터에서 로컬 프로젝트로 ObjectMap을 복사하는 코드로 py 파일을 삽입했으며이 코드의 메서드 이름은 로봇의 키워드로 사용되었고 Suite 설치에 적용되었습니다. 로봇에서는 조건이 만족 스러울 때에 만 나는 깃발을 달아서 달릴 수있었습니다. 플래그가 추가되면, 동일한 머신에 오브젝트 맵의 다양한 사본을 작성하는 동일한 원격 시스템에서 코드를 실행하려는 경우가 있습니다.

내 평 코드

'def copy_file_from_source_to_destination(self,src,dst):   
    try: 
     shutil.copy2(src, dst) 
    except Exception as e: 
     return str(e) 
    return 'Success' ' 

내 로봇 키워드

'Get Central OR 

    ${DESTINATION}= Catenate ${EXECDIR}${TARGET_OR} 
    Log ${DESTINATION} 
    ${CALL_STATUS}= Convert To Uppercase ${CALL_STATUS} 
    Run Keyword If '${CALL_STATUS}'=='YES' Copy File From Source To Destination ${CENTRAL_OR} ${DESTINATION} 
0

약간 늦게 (나는 SO에이 질문을 놓친해야한다), 저 위의 문제를 정리해 보자. RED는 변수의 값을 알지 못합니다. 변수는 실행 중에 (testlogic, suite 설정, 변수 파일 등으로) 수정할 수 있으므로 변수 섹션의 모든 값 할당은 매개 변수화 된 경로를 해결하기 위해 RED에서 가져올 수 없습니다. $ {EXECDIR}과 같은 시스템 변수에도 동일하게 적용됩니다.이 변수는 로봇 실행을 시작하는 위치와 로봇 명령이 생성되는 방법에 따라 달라질 수 있습니다.

다른 시나리오에서 입력 매개 변수 (예 : Robot으로 테스트 할 소프트웨어의 버전 또는 유형)를 기반으로하는 CI 작업은 해당 버전 또는 소프트웨어 유형에만 유효한 올바른 라이브러리 또는 리소스를 사용하도록 경로의 변수를 수정합니다 . VM 메커니즘이 없으면 테스터는 매개 변수화 된 가져 오기가있는 스위트를 임시로 변경하여 적절한 가져 오기 (Nokia의 실제 시나리오 및 red.xml의 VM의 이유)를 사용할 수 있도록 경로를 지정해야합니다.

따라서 경로에 변수가있는 가져 오기의 경우 RED는 USER가 편집 단계에서 사용할 임시 유효 값을 지정해야한다고 가정합니다.

이것은 red.xml의 변수 매핑에 대한 이유입니다. 변수의 값을 지정할 수 있으므로 모든 경로를 확인할 수 있으므로 파일을 가져올 수 있습니다.

(GitHub의 응용 프로그램과의) RED 도움말 항목도있다 : 대한 http://nokia.github.io/RED/help/user_guide/working_with_RED/variable_mapping.html

경고 "뭔가 외부 프로젝트/작업 영역"- 때이 테스트가 작동하지 않는 이유를 이해하는 데 도움이 될 수 있습니다 경고 다른 컴퓨터의 저장소에서 결제했습니다. 오류/경고되는 Windows에서 변경 될 수 있습니다> 환경 설정 -> 로봇 프레임 워크 -> 오류/경고 도움말 항목 : 당신이 어떤 질문이나 문제가있는 경우 http://nokia.github.io/RED/help/user_guide/validation/validation_preferences.html

는, RED GitHub의 프로젝트에 이슈 트래커에 사람들을 만드십시오 : https://github.com/nokia/RED/issues

빨간색 오후