2014-09-23 55 views
3

我是Robot Framework的新手,我無法找到在Windows上使用參數運行進程的方法。我敢肯定我不明白的文件並沒有這樣做,雖然一個簡單的方法...Robot Framework:在Windows上使用參數啓動進程?

好吧,讓我們說,我可以使用這個命令啓動程序:

c:\myappdir>MyApp.exe /I ..\params\myAppParams.bin 

怎麼辦在RF?

任何形式的幫助,將不勝感激。 非常感謝你:)

編輯1:

以下是一段我的代碼:

| *Setting*   | *Value* 
| Resource    | compilationResource.robot 
#(Process lib is included in compilationResource) 

#I removed the "|" for readability 
... 
TEST1 
... 
    ${REPLAYEXEDIR}= get_replay_exe_dir #from a custom lib included in compilationResource 
    ${EXEFULLPATH}= Join Path ${WORKSPACEDIR} ${REPLAYEXEDIR} SDataProc.exe 
    Should Exist ${EXEFULLPATH} 
    ${REPLAYLOGPATH}= Join Path ${WORKSPACEDIR} ReplayLog.log 
    ${REPLAYFILEPATH}= Join Path ${WORKSPACEDIR} params params.bin 
    Should Exist ${REPLAYFILEPATH} 

    Start Process ${EXEFULLPATH} stderr=${REPLAYLOGPATH} stdout=${REPLAYLOGPATH} alias=replayjob 
    Process Should Be Running replayjob 
    Terminate Process replayjob     
    Process Should Be Stopped replayjob 

這工作。當我嘗試包括這樣的論點:

Start Process ${EXEFULLPATH} ${/}I ${REPLAYFILEPATH} stderr=${REPLAYLOGPATH} stdout=${REPLAYLOGPATH} alias=replayjob 

我得到這個錯誤:

WindowsError: [Error 2] The system cannot find the file specified

這個錯誤來自於啓動過程線。

讓我知道,如果我不清楚,或者如果需要更多的信息。 謝謝大家對此的幫助。

編輯2:解

每個參數必須(當外殼沒有運行)與雙空格分隔形式另一個。我沒有使用雙空格,因此錯誤。

| | Start Process | ${EXEFULLPATH} | /I | ${REPLAYFILEPATH} | stderr=${REPLAYLOGPATH} | stdout=${REPLAYLOGPATH} | alias=replayjob 

回答

1

從一個Robot Framework的測試啓動您的程序,使用Process library,如:

*** Settings *** 
Library Process 

*** Test Cases *** 
First test 
    Run Process c:${/}myappdir${/}prog.py /I ..\params\myAppParams.bin 
    # and then do some tests.... 
+0

謝謝您的回覆洛朗。不過,我已經嘗試過了,而且它沒有工作。請參閱我的編輯1. – joris255 2014-09-23 11:52:31

+0

好的,我錯過了進程之間的分隔符/ I和參數文件路徑。非常感謝你。另一方面,它表明雙層空間分隔器的可讀性差。我會堅持「|」分離器從現在開始。 Merci encore Laurent – joris255 2014-09-23 12:10:12

+0

是的,我傾向於同意雙倍空間分隔符可能會引起混淆。另一方面,把「|」到處都讓測試變得更加重量級,看起來不像英語句子......那麼,會不斷思考它:-) – 2014-09-23 12:29:07