2014-09-23 31 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